From ee58e28fd963f5f06780c4b245a65512448b9874 Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Fri, 16 Dec 2022 17:32:29 -0600 Subject: [PATCH 01/11] Much cleanups --- web/AaveV2Migrator.tsx | 1576 +++--------------------- web/App.tsx | 19 +- web/CompoundV2Migrator.tsx | 1459 ++-------------------- web/Migrator.tsx | 1010 +++++++++++++++ web/Network.ts | 245 +--- web/components/AaveBorrowInputView.tsx | 152 --- web/helpers/numbers.ts | 3 +- web/helpers/utils.ts | 609 ++++++++- web/types.ts | 109 +- 9 files changed, 2042 insertions(+), 3140 deletions(-) create mode 100644 web/Migrator.tsx delete mode 100644 web/components/AaveBorrowInputView.tsx diff --git a/web/AaveV2Migrator.tsx b/web/AaveV2Migrator.tsx index f8ac333..9571d00 100644 --- a/web/AaveV2Migrator.tsx +++ b/web/AaveV2Migrator.tsx @@ -1,18 +1,10 @@ import '../styles/main.scss'; import { CometState } from '@compound-finance/comet-extension'; -import { - BaseAssetWithAccountState, - StateType as CometStateType -} from '@compound-finance/comet-extension/dist/CometState'; import { Contract } from '@ethersproject/contracts'; import { JsonRpcProvider } from '@ethersproject/providers'; -import { Protocol } from '@uniswap/router-sdk'; -import { AlphaRouter, SwapType, V3Route } from '@uniswap/smart-order-router'; -import { CurrencyAmount, Percent, Token, TradeType } from '@uniswap/sdk-core'; -import { encodeRouteToPath } from '@uniswap/v3-sdk'; import { Contract as MulticallContract, Provider } from 'ethers-multicall'; -import { ReactNode, useMemo, useReducer, useState } from 'react'; +import { useMemo } from 'react'; import ATokenAbi from '../abis/Aave/AToken'; import AaveDebtToken from '../abis/Aave/DebtToken'; @@ -22,48 +14,23 @@ import AavePriceOracle from '../abis/Aave/PriceOracle'; import Comet from '../abis/Comet'; -import AaveBorrowInputView from './components/AaveBorrowInputView'; -import ApproveModal from './components/ApproveModal'; -import Dropdown from './components/Dropdown'; -import { InputViewError, supplyCapError } from './components/ErrorViews'; -import { CircleExclamation } from './components/Icons'; -import { LoadingView } from './components/LoadingViews'; - import { multicall } from './helpers/multicall'; -import { - BASE_FACTOR, - formatTokenBalance, - getRiskLevelAndPercentage, - maybeBigIntFromString, - usdPriceFromEthPrice, - SLIPPAGE_TOLERANCE, - getLTVAsFactor -} from './helpers/numbers'; -import { migratorTrxKey, tokenApproveTrxKey, migrationSourceToDisplayString } from './helpers/utils'; - -import { useAsyncEffect } from './lib/useAsyncEffect'; -import { usePoll } from './lib/usePoll'; -import { - hasAwaitingConfirmationTransaction, - hasPendingTransaction, - useTransactionTracker -} from './lib/useTransactionTracker'; +import { usdPriceFromEthPrice, getLTVAsFactor } from './helpers/numbers'; -import { ATokenSym, Network, getIdByNetwork, AaveNetworkConfig, stableCoins } from './Network'; +import Migrator, { MigratorState } from './Migrator'; +import { getIdByNetwork } from './Network'; import { + AaveNetworkConfig, AppProps, - ApproveModalProps, - ATokenState, + Network, MigrationSource, + MigrationSourceInfo, StateType, SwapRouteState, - SwapInfo + MigrateBorrowTokenState, + MigrateCollateralTokenState } from './types'; -const MAX_UINT256 = BigInt('115792089237316195423570985008687907853269984665640564039457584007913129639935'); -const FACTOR_PRECISION = 18; -const PRICE_PRECISION = 8; - type AaveV2MigratorProps = AppProps & { account: string; cometState: CometState; @@ -71,1389 +38,192 @@ type AaveV2MigratorProps = AppProps & { selectMigratorSource: (source: MigrationSource) => void; }; -interface Borrow { - aDebtToken: string; - amount: bigint; -} - -interface Collateral { - aToken: string; - amount: bigint; -} - -interface Swap { - path: string; - amountInMaximum: bigint; -} - -interface MigratorStateData { - error: string | null; - migratorEnabled: boolean; - aTokens: Map, ATokenState>; -} - -type MigratorStateLoading = { type: StateType.Loading; data: { error: null | string } }; -type MigratorStateHydrated = { - type: StateType.Hydrated; - data: MigratorStateData; -}; -type MigratorState = MigratorStateLoading | MigratorStateHydrated; - -enum ActionType { - ClearRepayAndTransferAmounts = 'clear-amounts', - SetAccountState = 'set-account-state', - SetError = 'set-error', - SetRepayAmount = 'set-repay-amount', - SetSwapRoute = 'set-swap-route', - SetTransferForAToken = 'set-transfer-for-atoken' -} - -type ActionSetAccountState = { - type: ActionType.SetAccountState; - payload: { - migratorEnabled: boolean; - aTokens: Map, ATokenState>; - }; -}; -type ActionSetError = { - type: ActionType.SetError; - payload: { - error: string; - }; -}; -type ActionSetRepayAmount = { - type: ActionType.SetRepayAmount; - payload: { - symbol: ATokenSym; - type: 'stable' | 'variable'; - repayAmount: string; - }; -}; -type ActionSetSwapRoute = { - type: ActionType.SetSwapRoute; - payload: { - symbol: ATokenSym; - type: 'stable' | 'variable'; - swapRoute: SwapRouteState; - }; -}; -type ActionSetTransferForAToken = { - type: ActionType.SetTransferForAToken; - payload: { - symbol: ATokenSym; - transfer: string; - }; -}; -type ActionClearRepayAndTransferAmounts = { - type: ActionType.ClearRepayAndTransferAmounts; -}; - -type Action = - | ActionClearRepayAndTransferAmounts - | ActionSetAccountState - | ActionSetError - | ActionSetRepayAmount - | ActionSetSwapRoute - | ActionSetTransferForAToken; - -function reducer(state: MigratorState, action: Action): MigratorState { - switch (action.type) { - case ActionType.ClearRepayAndTransferAmounts: { - if (state.type !== StateType.Hydrated) return state; - - const aTokenCopy: Map, ATokenState> = new Map( - Array.from(state.data.aTokens).map(([sym, tokenState]) => { - return [ - sym, - { - ...tokenState, - repayAmount: '', - transfer: '' - } - ]; - }) - ); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - aTokens: aTokenCopy - } - }; - } - case ActionType.SetAccountState: { - return { - type: StateType.Hydrated, - data: { - error: null, - ...action.payload - } - }; - } - case ActionType.SetError: { - const nextState = { ...state }; - nextState.data.error = action.payload.error; - return nextState; - } - case ActionType.SetRepayAmount: { - if (state.type !== StateType.Hydrated) return state; - - const aTokenCopy: Map, ATokenState> = new Map(Array.from(state.data.aTokens)); - const repayAmountKey = action.payload.type === 'stable' ? 'repayAmountStable' : 'repayAmountVariable'; - aTokenCopy.set(action.payload.symbol, { - ...(state.data.aTokens.get(action.payload.symbol) as ATokenState), - [repayAmountKey]: action.payload.repayAmount - }); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - aTokens: aTokenCopy - } - }; - } - case ActionType.SetSwapRoute: { - if (state.type !== StateType.Hydrated) return state; - - const aTokenCopy: Map, ATokenState> = new Map(Array.from(state.data.aTokens)); - const swapRouteKey = action.payload.type === 'stable' ? 'swapRouteStable' : 'swapRouteVariable'; - aTokenCopy.set(action.payload.symbol, { - ...(state.data.aTokens.get(action.payload.symbol) as ATokenState), - [swapRouteKey]: action.payload.swapRoute - }); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - aTokens: aTokenCopy - } - }; - } - case ActionType.SetTransferForAToken: { - if (state.type !== StateType.Hydrated) return state; - - const aTokenCopy: Map, ATokenState> = new Map(Array.from(state.data.aTokens)); - aTokenCopy.set(action.payload.symbol, { - ...(state.data.aTokens.get(action.payload.symbol) as ATokenState), - transfer: action.payload.transfer - }); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - aTokens: aTokenCopy - } - }; - } - } -} -const initialState: MigratorState = { type: StateType.Loading, data: { error: null } }; - export default function AaveV2Migrator({ + rpc, web3, cometState, account, networkConfig, selectMigratorSource }: AaveV2MigratorProps) { - const [state, dispatch] = useReducer(reducer, initialState); - const [approveModal, setApproveModal] = useState | undefined>( - undefined - ); - const { tracker, trackTransaction } = useTransactionTracker(web3); - - const timer = usePoll(5000); - const routerCache = useMemo(() => new Map(), [networkConfig.network]); - - const signer = useMemo(() => { - return web3.getSigner().connectUnchecked(); - }, [web3, account]); - - const aTokenCtxs = useMemo(() => { - return new Map( - networkConfig.aTokens.map(({ aTokenAddress, aTokenSymbol }) => [ - aTokenSymbol, - new Contract(aTokenAddress, ATokenAbi, signer) - ]) - ) as Map, Contract>; - }, [signer]); - - const migrator = useMemo(() => new Contract(networkConfig.migratorAddress, networkConfig.migratorAbi, signer), [ - signer - ]); - const comet = useMemo(() => new MulticallContract(networkConfig.rootsV3.comet, Comet), []); const lendingPoolAddressesProvider = useMemo( - () => new Contract(networkConfig.lendingPoolAddressesProviderAddress, AaveLendingPoolAddressesProvider, signer), - [signer] + () => new Contract(networkConfig.lendingPoolAddressesProviderAddress, AaveLendingPoolAddressesProvider, web3), + [web3] ); - const lendingPool = useMemo(() => new MulticallContract(networkConfig.lendingPoolAddress, AaveLendingPool), []); const oraclePromise = useMemo(async () => { const oracleAddress = await lendingPoolAddressesProvider.getPriceOracle(); return new MulticallContract(oracleAddress, AavePriceOracle); }, [lendingPoolAddressesProvider, networkConfig.network]); + return ( + { + const aaveNetworkConfig = networkConfig as AaveNetworkConfig; + const ethcallProvider = new Provider(web3, getIdByNetwork(aaveNetworkConfig.network)); + const comet = new MulticallContract(aaveNetworkConfig.rootsV3.comet, Comet); + const lendingPool = new MulticallContract(aaveNetworkConfig.lendingPoolAddress, AaveLendingPool); + const oracle = await oraclePromise; + + const aTokenContracts = aaveNetworkConfig.aTokens.map( + ({ aTokenAddress }) => new MulticallContract(aTokenAddress, ATokenAbi) + ); + const stableDebtTokenContracts = aaveNetworkConfig.aTokens.map( + ({ stableDebtTokenAddress }) => new MulticallContract(stableDebtTokenAddress, AaveDebtToken) + ); + const variableDebtTokenContracts = aaveNetworkConfig.aTokens.map( + ({ variableDebtTokenAddress }) => new MulticallContract(variableDebtTokenAddress, AaveDebtToken) + ); - const ethcallProvider = useMemo(() => new Provider(web3, getIdByNetwork(networkConfig.network)), [ - web3, - networkConfig.network - ]); - - async function setTokenApproval(tokenSym: ATokenSym) { - const tokenContract = aTokenCtxs.get(tokenSym)!; - await trackTransaction( - tokenApproveTrxKey(tokenContract.address, migrator.address), - tokenContract.approve(migrator.address, MAX_UINT256) - ); - } - - useAsyncEffect(async () => { - const aTokenContracts = networkConfig.aTokens.map( - ({ aTokenAddress }) => new MulticallContract(aTokenAddress, ATokenAbi) - ); - const stableDebtTokenContracts = networkConfig.aTokens.map( - ({ stableDebtTokenAddress }) => new MulticallContract(stableDebtTokenAddress, AaveDebtToken) - ); - const variableDebtTokenContracts = networkConfig.aTokens.map( - ({ variableDebtTokenAddress }) => new MulticallContract(variableDebtTokenAddress, AaveDebtToken) - ); - const oracle = await oraclePromise; - - const balanceCalls = aTokenContracts.map(aTokenContract => aTokenContract.balanceOf(account)); - const allowanceCalls = aTokenContracts.map(aTokenContract => aTokenContract.allowance(account, migrator.address)); - const collateralFactorCalls = networkConfig.aTokens.map(({ address }) => lendingPool.getConfiguration(address)); - const borrowBalanceStableCalls = stableDebtTokenContracts.map(debtTokenContract => - debtTokenContract.balanceOf(account) - ); - const borrowBalanceVariableCalls = variableDebtTokenContracts.map(debtTokenContract => - debtTokenContract.balanceOf(account) - ); - - const [ - migratorEnabled, - usdcPriceInEth, - pricesInEth, - balanceResponses, - allowanceResponses, - collateralFactorResponses, - borrowBalanceStableResponses, - borrowBalanceVariableResponses - ] = await multicall(ethcallProvider, [ - comet.allowance(account, migrator.address), - oracle.getAssetPrice('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'), - oracle.getAssetsPrices(networkConfig.aTokens.map(aToken => aToken.address)), - balanceCalls, - allowanceCalls, - collateralFactorCalls, - borrowBalanceStableCalls, - borrowBalanceVariableCalls - ]); - - const balances = balanceResponses.map((balance: any) => balance.toBigInt()); - const allowances = allowanceResponses.map((allowance: any) => allowance.toBigInt()); - const collateralFactors = collateralFactorResponses.map((configData: any, i: number) => - getLTVAsFactor(configData.data.toBigInt()) - ); - const borrowBalancesStableDebtToken = borrowBalanceStableResponses.map((balance: any) => balance.toBigInt()); - const borrowBalancesVariableDebtToken = borrowBalanceVariableResponses.map((balance: any) => balance.toBigInt()); - const prices = pricesInEth.map((price: any) => - usdPriceFromEthPrice(usdcPriceInEth.toBigInt(), price.toBigInt(), 8) - ); - - const tokenStates = new Map( - networkConfig.aTokens.map((aToken, index) => { - const maybeTokenState = - state.type === StateType.Loading ? undefined : state.data.aTokens.get(aToken.aTokenSymbol); + const balanceCalls = aTokenContracts.map(aTokenContract => aTokenContract.balanceOf(account)); + const allowanceCalls = aTokenContracts.map(aTokenContract => + aTokenContract.allowance(account, aaveNetworkConfig.migratorAddress) + ); + const collateralFactorCalls = aaveNetworkConfig.aTokens.map(({ address }) => + lendingPool.getConfiguration(address) + ); + const borrowBalanceStableCalls = stableDebtTokenContracts.map(debtTokenContract => + debtTokenContract.balanceOf(account) + ); + const borrowBalanceVariableCalls = variableDebtTokenContracts.map(debtTokenContract => + debtTokenContract.balanceOf(account) + ); - const balance: bigint = balances[index]; - const allowance: bigint = allowances[index]; - const collateralFactor: bigint = collateralFactors[index]; - const borrowBalanceStable: bigint = borrowBalancesStableDebtToken[index]; - const borrowBalanceVariable: bigint = borrowBalancesVariableDebtToken[index]; - const repayAmountStable: string = maybeTokenState?.repayAmountStable ?? ''; - const repayAmountVariable: string = maybeTokenState?.repayAmountVariable ?? ''; - const transfer: string = maybeTokenState?.transfer ?? ''; - const swapRouteStable: SwapRouteState = maybeTokenState?.swapRouteStable; - const swapRouteVariable: SwapRouteState = maybeTokenState?.swapRouteVariable; - const price: bigint = prices[index]; + const [ + migratorEnabled, + usdcPriceInEth, + pricesInEth, + balanceResponses, + allowanceResponses, + collateralFactorResponses, + borrowBalanceStableResponses, + borrowBalanceVariableResponses + ] = await multicall(ethcallProvider, [ + comet.allowance(account, aaveNetworkConfig.migratorAddress), + oracle.getAssetPrice('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'), // HARDCODED MAINNET USDC ADDRESS + oracle.getAssetsPrices(aaveNetworkConfig.aTokens.map(aToken => aToken.address)), + balanceCalls, + allowanceCalls, + collateralFactorCalls, + borrowBalanceStableCalls, + borrowBalanceVariableCalls + ]); + + const balances = balanceResponses.map((balance: any) => balance.toBigInt()); + const allowances = allowanceResponses.map((allowance: any) => allowance.toBigInt()); + const collateralFactors = collateralFactorResponses.map((configData: any, i: number) => + getLTVAsFactor(configData.data.toBigInt()) + ); + const borrowBalancesStableDebtToken = borrowBalanceStableResponses.map((balance: any) => balance.toBigInt()); + const borrowBalancesVariableDebtToken = borrowBalanceVariableResponses.map((balance: any) => + balance.toBigInt() + ); + const prices = pricesInEth.map((price: any) => + usdPriceFromEthPrice(usdcPriceInEth.toBigInt(), price.toBigInt(), 8) + ); - return [ - aToken.aTokenSymbol, - { - aToken: aToken, + const borrowTokens: MigrateBorrowTokenState[] = aaveNetworkConfig.aTokens + .map((aToken, index) => { + const maybeStableDebtTokenState = + state.type === StateType.Loading + ? undefined + : state.data.borrowTokens.find(token => token.address === aToken.stableDebtTokenAddress); + const maybeVariableDebtTokenState = + state.type === StateType.Loading + ? undefined + : state.data.borrowTokens.find(token => token.address === aToken.variableDebtTokenAddress); + + const borrowBalanceStable: bigint = borrowBalancesStableDebtToken[index]; + const borrowBalanceVariable: bigint = borrowBalancesVariableDebtToken[index]; + const decimals: number = aToken.decimals; + const name: string = aToken.aTokenSymbol; + const symbol: string = aToken.aTokenSymbol; + const repayAmountStable: string = maybeStableDebtTokenState?.repayAmount ?? ''; + const repayAmountVariable: string = maybeVariableDebtTokenState?.repayAmount ?? ''; + const swapRouteStable: SwapRouteState = maybeStableDebtTokenState?.swapRoute; + const swapRouteVariable: SwapRouteState = maybeVariableDebtTokenState?.swapRoute; + const price: bigint = prices[index]; + const underlying = { + address: aToken.address, + decimals: aToken.decimals, + name: aToken.symbol, + symbol: aToken.symbol + }; + + const stableDebtTokenState: MigrateBorrowTokenState = { + address: aToken.stableDebtTokenAddress, + borrowBalance: borrowBalanceStable, + borrowType: 'stable', + decimals, + name, + price, + repayAmount: repayAmountStable, + swapRoute: swapRouteStable, + symbol, + underlying + }; + const variableDebtTokenState: MigrateBorrowTokenState = { + address: aToken.variableDebtTokenAddress, + borrowBalance: borrowBalanceVariable, + borrowType: 'variable', + decimals, + name, + price, + repayAmount: repayAmountVariable, + swapRoute: swapRouteVariable, + symbol, + underlying + }; + return [stableDebtTokenState, variableDebtTokenState]; + }) + .flat(); + const collateralTokens: MigrateCollateralTokenState[] = aaveNetworkConfig.aTokens.map((aToken, index) => { + const maybeTokenState = + state.type === StateType.Loading + ? undefined + : state.data.collateralTokens.find(token => token.address === aToken.aTokenAddress); + + const balance: bigint = balances[index]; + const balanceUnderlying = balance; + const allowance: bigint = allowances[index]; + const collateralFactor: bigint = collateralFactors[index]; + const transfer: string = maybeTokenState?.transfer ?? ''; + const price: bigint = prices[index]; + const decimals: number = aToken.decimals; + const name: string = aToken.aTokenSymbol; + const symbol: string = aToken.aTokenSymbol; + const underlying = { + address: aToken.address, + decimals: aToken.decimals, + name: aToken.symbol, + symbol: aToken.symbol + }; + + return { + address: aToken.aTokenAddress, allowance, balance, - borrowBalanceStable, - borrowBalanceVariable, + balanceUnderlying, collateralFactor, + decimals, + name, price, - repayAmountStable, - repayAmountVariable, + symbol, transfer, - swapRouteStable, - swapRouteVariable - } - ]; - }) - ); - - dispatch({ - type: ActionType.SetAccountState, - payload: { - migratorEnabled, - aTokens: tokenStates - } - }); - }, [timer, tracker, account, networkConfig.network]); - - if (state.type === StateType.Loading || cometState[0] !== CometStateType.Hydrated) { - return ; - } - const cometData = cometState[1]; - - const aTokensWithBorrowBalances = Array.from(state.data.aTokens.entries()).filter(([, tokenState]) => { - return ( - (tokenState.borrowBalanceStable > 0n || tokenState.borrowBalanceVariable > 0n) && - !!stableCoins.find(coin => coin === tokenState.aToken.symbol) - ); - }); - const collateralWithBalances = Array.from(state.data.aTokens.entries()).filter(([, tokenState]) => { - const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.address === tokenState.aToken.address); - return ( - (v3CollateralAsset !== undefined || tokenState.aToken.address === cometData.baseAsset.address) && - tokenState.balance > 0n - ); - }); - const aTokens = Array.from(state.data.aTokens.entries()); - const v2BorrowValue = aTokens.reduce( - ( - acc, - [, { borrowBalanceStable, borrowBalanceVariable, aToken, price, repayAmountStable, repayAmountVariable }] - ) => { - const maybeRepayAmountStable = - repayAmountStable === 'max' ? borrowBalanceStable : maybeBigIntFromString(repayAmountStable, aToken.decimals); - const maybeRepayAmountVariable = - repayAmountVariable === 'max' - ? borrowBalanceVariable - : maybeBigIntFromString(repayAmountVariable, aToken.decimals); - const repayAmountStableBigInt = - maybeRepayAmountStable === undefined - ? 0n - : maybeRepayAmountStable > borrowBalanceStable - ? borrowBalanceStable - : maybeRepayAmountStable; - const repayAmountVariableBigInt = - maybeRepayAmountVariable === undefined - ? 0n - : maybeRepayAmountVariable > borrowBalanceVariable - ? borrowBalanceVariable - : maybeRepayAmountVariable; - return ( - acc + - ((borrowBalanceStable + borrowBalanceVariable - repayAmountStableBigInt - repayAmountVariableBigInt) * price) / - BigInt(10 ** aToken.decimals) - ); - }, - BigInt(0) - ); - const displayV2BorrowValue = formatTokenBalance(PRICE_PRECISION, v2BorrowValue, false, true); - - const v2CollateralValue = aTokens.reduce((acc, [, { aToken, balance, price, transfer }]) => { - const maybeTransfer = transfer === 'max' ? balance : maybeBigIntFromString(transfer, aToken.decimals); - const transferBigInt = maybeTransfer === undefined ? 0n : maybeTransfer > balance ? balance : maybeTransfer; - return acc + ((balance - transferBigInt) * price) / BigInt(10 ** aToken.decimals); - }, BigInt(0)); - const displayV2CollateralValue = formatTokenBalance(PRICE_PRECISION, v2CollateralValue, false, true); - - const v2UnsupportedBorrowValue = aTokens.reduce( - (acc, [, { aToken, borrowBalanceStable, borrowBalanceVariable, price }]) => { - const unsupported = - (borrowBalanceStable > 0n || borrowBalanceVariable > 0n) && !stableCoins.find(coin => coin === aToken.symbol); - const balance = unsupported ? borrowBalanceStable + borrowBalanceVariable : 0n; - return acc + (balance * price) / BigInt(10 ** aToken.decimals); - }, - BigInt(0) - ); - const displayV2UnsupportedBorrowValue = formatTokenBalance(PRICE_PRECISION, v2UnsupportedBorrowValue, false, true); - const v2UnsupportedCollateralValue = aTokens.reduce((acc, [, { aToken, balance, price }]) => { - const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.address === aToken.address); - const collateralBalance = - v3CollateralAsset === undefined && aToken.address !== cometData.baseAsset.address ? balance : 0n; - return acc + (collateralBalance * price) / BigInt(10 ** aToken.decimals); - }, BigInt(0)); - const displayV2UnsupportedCollateralValue = formatTokenBalance( - PRICE_PRECISION, - v2UnsupportedCollateralValue, - false, - true - ); - - const v2BorrowCapacity = aTokens.reduce((acc, [, { aToken, balance, collateralFactor, price, transfer }]) => { - const maybeTransfer = transfer === 'max' ? balance : maybeBigIntFromString(transfer, aToken.decimals); - const transferBigInt = maybeTransfer === undefined ? 0n : maybeTransfer > balance ? balance : maybeTransfer; - const dollarValue = ((balance - transferBigInt) * price) / BigInt(10 ** aToken.decimals); - const capacity = (dollarValue * collateralFactor) / BASE_FACTOR; - return acc + capacity; - }, BigInt(0)); - const displayV2BorrowCapacity = formatTokenBalance(PRICE_PRECISION, v2BorrowCapacity, false, true); - - const v2AvailableToBorrow = v2BorrowCapacity - v2BorrowValue; - const displayV2AvailableToBorrow = formatTokenBalance(PRICE_PRECISION, v2AvailableToBorrow, false, true); - - const v2ToV3MigrateBorrowValue = aTokens.reduce( - ( - acc, - [, { aToken, borrowBalanceStable, borrowBalanceVariable, price, repayAmountStable, repayAmountVariable }] - ) => { - const maybeRepayAmountStable = - repayAmountStable === 'max' ? borrowBalanceStable : maybeBigIntFromString(repayAmountStable, aToken.decimals); - const maybeRepayAmountVariable = - repayAmountVariable === 'max' - ? borrowBalanceVariable - : maybeBigIntFromString(repayAmountVariable, aToken.decimals); - const repayAmountStableBigInt = - maybeRepayAmountStable === undefined - ? 0n - : maybeRepayAmountStable > borrowBalanceStable - ? borrowBalanceStable - : maybeRepayAmountStable; - const repayAmountVariableBigInt = - maybeRepayAmountVariable === undefined - ? 0n - : maybeRepayAmountVariable > borrowBalanceVariable - ? borrowBalanceVariable - : maybeRepayAmountVariable; - const newBorrowAmount = repayAmountStableBigInt + repayAmountVariableBigInt; - - return acc + (newBorrowAmount * price) / BigInt(10 ** aToken.decimals); - }, - BigInt(0) - ); - const existinBorrowBalance = cometData.baseAsset.balance < 0n ? -cometData.baseAsset.balance : 0n; - const existingBorrowValue: bigint = - (existinBorrowBalance * cometData.baseAsset.price) / BigInt(10 ** cometData.baseAsset.decimals); - const baseAssetTransferValue = aTokens.reduce((acc, [, { aToken, balance, price, transfer }]) => { - if (aToken.address === cometData.baseAsset.address) { - const maybeTransfer = transfer === 'max' ? balance : maybeBigIntFromString(transfer, aToken.decimals); - const transferBigInt = maybeTransfer === undefined ? 0n : maybeTransfer > balance ? balance : maybeTransfer; - return acc + (transferBigInt * price) / BigInt(10 ** aToken.decimals); - } - return acc; - }, BigInt(0)); - const v3BorrowValue = existingBorrowValue + v2ToV3MigrateBorrowValue - baseAssetTransferValue; - - const displayV3BorrowValue = formatTokenBalance(PRICE_PRECISION, v3BorrowValue, false, true); - - const v2ToV3MigrateCollateralValue = aTokens.reduce((acc, [, { aToken, balance, price, transfer }]) => { - const maybeTransfer = transfer === 'max' ? balance : maybeBigIntFromString(transfer, aToken.decimals); - const transferBigInt = - maybeTransfer === undefined || aToken.address === cometData.baseAsset.address - ? 0n - : maybeTransfer > balance - ? balance - : maybeTransfer; - return acc + (transferBigInt * price) / BigInt(10 ** aToken.decimals); - }, BigInt(0)); - const v3CollateralValuePreMigrate = cometData.collateralAssets.reduce((acc, { balance, decimals, price }) => { - return acc + (balance * price) / BigInt(10 ** decimals); - }, BigInt(0)); - - const v3CollateralValue = v2ToV3MigrateCollateralValue + v3CollateralValuePreMigrate; - const displayV3CollateralValue = formatTokenBalance(PRICE_PRECISION, v3CollateralValue, false, true); - - const v3BorrowCapacityValue = cometData.collateralAssets.reduce( - (acc, { address, balance, collateralFactor, decimals, price }) => { - const maybeAToken = aTokens.find(([, tokenState]) => tokenState.aToken.address === address)?.[1]; - const maybeTransfer = - maybeAToken === undefined - ? undefined - : maybeAToken.transfer === 'max' - ? maybeAToken.balance - : maybeBigIntFromString(maybeAToken.transfer, maybeAToken.aToken.decimals); - const transferBigInt = - maybeTransfer === undefined - ? 0n - : maybeAToken !== undefined && maybeTransfer > maybeAToken.balance - ? maybeAToken.balance - : maybeTransfer; - - const dollarValue = ((balance + transferBigInt) * price) / BigInt(10 ** decimals); - const capacity = (dollarValue * collateralFactor) / BigInt(10 ** FACTOR_PRECISION); - - return acc + capacity; - }, - BigInt(0) - ); - const displayV3BorrowCapacity = formatTokenBalance(PRICE_PRECISION, v3BorrowCapacityValue, false, true); - - const v3LiquidationCapacityValue = cometData.collateralAssets.reduce( - (acc, { address, balance, liquidateCollateralFactor, decimals, price }) => { - const maybeAToken = aTokens.find(([, tokenState]) => tokenState.aToken.address === address)?.[1]; - const maybeTransfer = - maybeAToken === undefined - ? undefined - : maybeAToken.transfer === 'max' - ? maybeAToken.balance - : maybeBigIntFromString(maybeAToken.transfer, maybeAToken.aToken.decimals); - const transferBigInt = - maybeTransfer === undefined - ? 0n - : maybeAToken !== undefined && maybeTransfer > maybeAToken.balance - ? maybeAToken.balance - : maybeTransfer; - const dollarValue = ((balance + transferBigInt) * price) / BigInt(10 ** decimals); - const capacity = (dollarValue * liquidateCollateralFactor) / BigInt(10 ** FACTOR_PRECISION); - return acc + capacity; - }, - BigInt(0) - ); - - const v3AvailableToBorrow = v3BorrowCapacityValue - v3BorrowValue; - const displayV3AvailableToBorrow = formatTokenBalance(PRICE_PRECISION, v3AvailableToBorrow, false, true); - - const hasMigratePosition = v2ToV3MigrateBorrowValue > 0n || v2ToV3MigrateCollateralValue > 0n; - - const [v2RiskLevel, v2RiskPercentage, v2RiskPercentageFill] = getRiskLevelAndPercentage( - v2BorrowValue, - v2BorrowCapacity - ); - const [v3RiskLevel, v3RiskPercentage, v3RiskPercentageFill] = getRiskLevelAndPercentage( - v3BorrowValue, - v3LiquidationCapacityValue - ); - const v3LiquidationPoint = (v3CollateralValue * BigInt(Math.min(100, v3RiskPercentage))) / 100n; - const displayV3LiquidationPoint = formatTokenBalance(PRICE_PRECISION, v3LiquidationPoint, false, true); - - function validateForm(): - | [{ collateral: Collateral[]; borrows: Borrow[]; swaps: Swap[] }, bigint] - | string - | undefined { - if (state.type === StateType.Loading || !state.data.migratorEnabled) { - return undefined; - } - - const collateral: Collateral[] = []; - for (let [, { aToken, balance, transfer }] of state.data.aTokens.entries()) { - const collateralAsset = cometData.collateralAssets.find(asset => asset.address === aToken.address); - const isBaseAsset = aToken.address === cometData.baseAsset.address; - - if (!collateralAsset && !isBaseAsset) { - continue; - } - - if (transfer === 'max') { - if (!isBaseAsset && !!collateralAsset && collateralAsset.totalSupply + balance > collateralAsset.supplyCap) { - return undefined; - } - - collateral.push({ - aToken: aToken.aTokenAddress, - amount: balance + underlying + }; }); - } else { - const maybeTransfer = maybeBigIntFromString(transfer, aToken.decimals); - if (maybeTransfer !== undefined && maybeTransfer > balance) { - return undefined; - } else if ( - maybeTransfer !== undefined && - !isBaseAsset && - !!collateralAsset && - collateralAsset.totalSupply + maybeTransfer > collateralAsset.supplyCap - ) { - return undefined; - } - - if (maybeTransfer === undefined) { - return undefined; - } else { - if (maybeTransfer > 0n) { - collateral.push({ - aToken: aToken.aTokenAddress, - amount: maybeTransfer - }); - } - } - } - } - - const borrows: Borrow[] = []; - for (let [ - , - { aToken, borrowBalanceStable, borrowBalanceVariable, repayAmountStable, repayAmountVariable } - ] of state.data.aTokens.entries()) { - if (repayAmountStable === '' && repayAmountVariable === '') { - continue; - } - - if (repayAmountStable === 'max') { - borrows.push({ - aDebtToken: aToken.stableDebtTokenAddress, - amount: MAX_UINT256 - }); - } else if (repayAmountStable !== '') { - const maybeRepayAmount = maybeBigIntFromString(repayAmountStable, aToken.decimals); - if (maybeRepayAmount !== undefined && maybeRepayAmount > borrowBalanceStable) { - return undefined; - } - - if (maybeRepayAmount === undefined) { - return undefined; - } else { - if (maybeRepayAmount > 0n) { - borrows.push({ - aDebtToken: aToken.stableDebtTokenAddress, - amount: maybeRepayAmount - }); - } - } - } - - if (repayAmountVariable === 'max') { - borrows.push({ - aDebtToken: aToken.variableDebtTokenAddress, - amount: MAX_UINT256 - }); - } else if (repayAmountVariable !== '') { - const maybeRepayAmount = maybeBigIntFromString(repayAmountVariable, aToken.decimals); - if (maybeRepayAmount !== undefined && maybeRepayAmount > borrowBalanceVariable) { - return undefined; - } - - if (maybeRepayAmount === undefined) { - return undefined; - } else { - if (maybeRepayAmount > 0n) { - borrows.push({ - aDebtToken: aToken.variableDebtTokenAddress, - amount: maybeRepayAmount - }); - } - } - } - } - - const swaps: Swap[] = []; - for (let [ - symbol, - { - aToken, - borrowBalanceStable, - borrowBalanceVariable, - repayAmountStable, - repayAmountVariable, - swapRouteStable, - swapRouteVariable - } - ] of state.data.aTokens.entries()) { - const maybeRepayAmountStable = - repayAmountStable === 'max' ? borrowBalanceStable : maybeBigIntFromString(repayAmountStable, aToken.decimals); - const maybeRepayAmountVariable = - repayAmountVariable === 'max' - ? borrowBalanceVariable - : maybeBigIntFromString(repayAmountVariable, aToken.decimals); - - if (maybeRepayAmountStable !== undefined && maybeRepayAmountStable > 0n) { - if (aToken.symbol === cometData.baseAsset.symbol) { - swaps.push({ - path: '0x', - amountInMaximum: MAX_UINT256 - }); - } else if (swapRouteStable !== undefined && swapRouteStable[0] === StateType.Hydrated) { - swaps.push({ - path: swapRouteStable[1].path, - amountInMaximum: MAX_UINT256 - }); - } else { - return undefined; - } - } - - if (maybeRepayAmountVariable !== undefined && maybeRepayAmountVariable > 0n) { - if (aToken.symbol === cometData.baseAsset.symbol) { - swaps.push({ - path: '0x', - amountInMaximum: MAX_UINT256 - }); - } else if (swapRouteVariable !== undefined && swapRouteVariable[0] === StateType.Hydrated) { - swaps.push({ - path: swapRouteVariable[1].path, - amountInMaximum: MAX_UINT256 - }); - } else { - return undefined; - } - } - } - - if (v2BorrowValue > v2BorrowCapacity || v3BorrowValue > v3BorrowCapacityValue) { - return 'Insufficient Collateral'; - } - - if (collateral.length === 0 && borrows.length === 0) { - return; - } - - const oneBaseAssetUnit = BigInt(10 ** cometData.baseAsset.decimals); - const maximumBorrowValue = (v2ToV3MigrateBorrowValue * (BASE_FACTOR + SLIPPAGE_TOLERANCE)) / BASE_FACTOR; // pad borrow value by 1 + SLIPPAGE_TOLERANCE - const flashAmount = (maximumBorrowValue * oneBaseAssetUnit) / cometData.baseAsset.price; - if (flashAmount > cometData.baseAsset.balanceOfComet) { - return `Insufficient ${cometData.baseAsset.symbol} Liquidity`; - } - return [{ collateral, borrows, swaps }, flashAmount]; - } - - let migrateParams = state.data.error ?? validateForm(); - - async function migrate() { - if (migrateParams !== undefined && typeof migrateParams !== 'string') { - try { - await trackTransaction( - migratorTrxKey(migrator.address), - migrator.migrate([[], [], []], migrateParams[0], migrateParams[1]), - () => { - dispatch({ type: ActionType.ClearRepayAndTransferAmounts }); - } - ); - } catch (e) { - if ('code' in (e as any) && (e as any).code === 'UNPREDICTABLE_GAS_LIMIT') { - dispatch({ - type: ActionType.SetError, - payload: { - error: 'Migration will fail if sent, e.g. due to collateral factors. Please adjust parameters.' - } - }); - } - } - } - } - - const quoteProvider = import.meta.env.VITE_BYPASS_MAINNET_RPC_URL - ? new JsonRpcProvider(import.meta.env.VITE_BYPASS_MAINNET_RPC_URL) - : web3; - const uniswapRouter = new AlphaRouter({ chainId: getIdByNetwork(networkConfig.network), provider: quoteProvider }); - - let borrowEl; - if (aTokensWithBorrowBalances.length > 0) { - borrowEl = aTokensWithBorrowBalances.map(([sym, tokenState]) => { - return ( - <> - {tokenState.borrowBalanceStable > 0n && ( - { - dispatch({ - type: ActionType.SetRepayAmount, - payload: { symbol: sym, type: 'stable', repayAmount: value } - }); - - const maybeValueBigInt = maybeBigIntFromString(value, tokenState.aToken.decimals); - - const cacheKey = `stable-${tokenState.aToken.symbol}`; - if (maybeValueBigInt !== undefined && maybeValueBigInt > 0n) { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'stable', swapRoute: [StateType.Loading] } - }); - - routerCache.set( - cacheKey, - setTimeout(() => { - getRoute( - getIdByNetwork(networkConfig.network), - migrator.address, - cometData.baseAsset, - tokenState, - uniswapRouter, - maybeValueBigInt - ) - .then(swapInfo => { - if (swapInfo !== null) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'stable', swapRoute: [StateType.Hydrated, swapInfo] } - }); - } - }) - .catch(e => { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { - symbol: sym, - type: 'stable', - swapRoute: [StateType.Error, 'Failed to fetch prices'] - } - }); - }); - }, 300) - ); - } else { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'stable', swapRoute: undefined } - }); - } - }} - onMaxButtonClicked={() => { - dispatch({ - type: ActionType.SetRepayAmount, - payload: { symbol: sym, type: 'stable', repayAmount: 'max' } - }); - - if (tokenState.aToken.symbol !== cometData.baseAsset.symbol) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'stable', swapRoute: [StateType.Loading] } - }); - - getRoute( - getIdByNetwork(networkConfig.network), - migrator.address, - cometData.baseAsset, - tokenState, - uniswapRouter, - tokenState.borrowBalanceStable - ) - .then(swapInfo => { - if (swapInfo !== null) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'stable', swapRoute: [StateType.Hydrated, swapInfo] } - }); - } - }) - .catch(e => { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'stable', swapRoute: [StateType.Error, 'Failed to fetch prices'] } - }); - }); - } - }} - /> - )} - {tokenState.borrowBalanceVariable > 0n && ( - { - dispatch({ - type: ActionType.SetRepayAmount, - payload: { symbol: sym, type: 'variable', repayAmount: value } - }); - - if (tokenState.aToken.address !== cometData.baseAsset.address) { - const maybeValueBigInt = maybeBigIntFromString(value, tokenState.aToken.decimals); - - const cacheKey = `variable-${tokenState.aToken.symbol}`; - if (maybeValueBigInt !== undefined) { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'variable', swapRoute: [StateType.Loading] } - }); - - routerCache.set( - cacheKey, - setTimeout(() => { - getRoute( - getIdByNetwork(networkConfig.network), - migrator.address, - cometData.baseAsset, - tokenState, - uniswapRouter, - maybeValueBigInt - ) - .then(swapInfo => { - if (swapInfo !== null) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'variable', swapRoute: [StateType.Hydrated, swapInfo] } - }); - } - }) - .catch(e => { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { - symbol: sym, - type: 'variable', - swapRoute: [StateType.Error, 'Failed to fetch prices'] - } - }); - }); - }, 300) - ); - } else { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'variable', swapRoute: [StateType.Error, 'Failed to fetch prices'] } - }); - } - } - }} - onMaxButtonClicked={() => { - dispatch({ - type: ActionType.SetRepayAmount, - payload: { symbol: sym, type: 'variable', repayAmount: 'max' } - }); - - if (tokenState.aToken.symbol !== cometData.baseAsset.symbol) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'variable', swapRoute: [StateType.Loading] } - }); - - getRoute( - getIdByNetwork(networkConfig.network), - migrator.address, - cometData.baseAsset, - tokenState, - uniswapRouter, - tokenState.borrowBalanceVariable - ) - .then(swapInfo => { - if (swapInfo !== null) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'variable', swapRoute: [StateType.Hydrated, swapInfo] } - }); - } - }) - .catch(e => { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, type: 'variable', swapRoute: undefined } - }); - }); - } - }} - /> - )} - - ); - }); - } - - let collateralEl = null; - if (collateralWithBalances.length > 0) { - collateralEl = collateralWithBalances.map(([sym, tokenState]) => { - let transfer: string; - let transferDollarValue: string; - let errorTitle: string | undefined; - let errorDescription: string | undefined; - const disabled = tokenState.allowance === 0n; - const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.aToken.symbol); - - if (tokenState.transfer === 'max') { - transfer = formatTokenBalance(tokenState.aToken.decimals, tokenState.balance, false); - transferDollarValue = formatTokenBalance( - tokenState.aToken.decimals + PRICE_PRECISION, - tokenState.balance * tokenState.price, - false, - true - ); - - if ( - collateralAsset !== undefined && - tokenState.balance + collateralAsset.totalSupply > collateralAsset.supplyCap - ) { - [errorTitle, errorDescription] = supplyCapError(collateralAsset); - } - } else { - const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.aToken.decimals); - - if (maybeTransfer === undefined) { - transfer = tokenState.transfer; - transferDollarValue = '$0.00'; - } else { - transfer = tokenState.transfer; - transferDollarValue = formatTokenBalance( - tokenState.aToken.decimals + PRICE_PRECISION, - maybeTransfer * tokenState.price, - false, - true - ); - - if (maybeTransfer > tokenState.balance) { - errorTitle = 'Amount Exceeds Balance.'; - errorDescription = `Value must be less than or equal to ${formatTokenBalance( - tokenState.aToken.decimals, - tokenState.balance, - false - )}`; - } else if ( - collateralAsset !== undefined && - maybeTransfer + collateralAsset.totalSupply > collateralAsset.supplyCap - ) { - [errorTitle, errorDescription] = supplyCapError(collateralAsset); - } - } - } - - const key = tokenApproveTrxKey(tokenState.aToken.aTokenAddress, migrator.address); - - return ( -
-
-
-
-
- -
-
- - dispatch({ - type: ActionType.SetTransferForAToken, - payload: { symbol: sym, transfer: e.target.value } - }) - } - type="text" - inputMode="decimal" - disabled={disabled} - /> - {tokenState.transfer === '' && !disabled && ( -
- 0.0000 -
- )} -
-

- {transferDollarValue} -

-
-
- {disabled ? ( - - ) : ( - - )} -

- Aave V2 balance:{' '} - {formatTokenBalance(tokenState.aToken.decimals, tokenState.balance, false)} -

-

- {formatTokenBalance( - tokenState.aToken.decimals + PRICE_PRECISION, - tokenState.balance * tokenState.price, - false, - true - )} -

-
-
- {!!errorTitle && } -
- ); - }); - } - - let migrateButtonText: ReactNode; - - if (hasAwaitingConfirmationTransaction(tracker, migratorTrxKey(migrator.address))) { - migrateButtonText = 'Waiting For Confirmation'; - } else if (hasPendingTransaction(tracker)) { - migrateButtonText = 'Transaction Pending...'; - } else if (typeof migrateParams === 'string') { - migrateButtonText = migrateParams; - } else { - migrateButtonText = 'Migrate Balances'; - } - - return ( -
- {!!approveModal && } -
-
-
-
-
-

Balances

-
-

- Select a source and the balances you want to migrate to Compound V3. If you are supplying{' '} - {cometData.baseAsset.symbol} on one market while borrowing on the other, your ending balance will be the - net of these two balances. -

-
- - [ - source, - migrationSourceToDisplayString(source) - ])} - selectedOption={migrationSourceToDisplayString(MigrationSource.AaveV2)} - selectOption={(option: [string, string]) => { - selectMigratorSource(option[0] as MigrationSource); - }} - /> -
- - {borrowEl === undefined ? ( -
- -

No balances to show.

-
- ) : ( - <> -
- - {borrowEl} - {v2UnsupportedBorrowValue > 0n && ( -
0 ? '1rem' : '0rem' }} - > - -

- {displayV2UnsupportedBorrowValue} of non-stable Aave V2 borrow value -

-
- )} -
-
- - {collateralEl} - {v2UnsupportedCollateralValue > 0n && ( -
0 ? '1rem' : '0rem' }} - > - -

- {displayV2UnsupportedCollateralValue} of Aave V2 collateral value cannot be migrated due to - unsupported collateral in V3. -

-
- )} -
- - )} -
-
-
-
-
-

Summary

-
-

- If you are borrowing other assets on Aave V2, migrating too much collateral could increase your - liquidation risk. -

-
- -
-
-

Borrowing

-

{displayV2BorrowValue}

-
-
-
-
-

Collateral Value

-

{displayV2CollateralValue}

-
-
-

Borrow Capacity

-

{displayV2BorrowCapacity}

-
-
-
-
-

Available to Borrow

-

{displayV2AvailableToBorrow}

-
-
-
-
-

Liquidation Risk

-

{`${v2RiskPercentage.toFixed(0)}%`}

-
-
-
-
-
-
-
-
-
- -
-
-

Borrowing

-

{displayV3BorrowValue}

-
-
-
-
-

Collateral Value

-

{displayV3CollateralValue}

-
-
-

Borrow Capacity

-

{displayV3BorrowCapacity}

-
-
-
-
-

Available to Borrow

-

{displayV3AvailableToBorrow}

-
-
-

Liquidation Point

-

{displayV3LiquidationPoint}

-
-
-
-
-

Liquidation Risk

-

{`${v3RiskPercentage.toFixed(0)}%`}

-
-
-
-
-
-
-
-
- -
-
-
-
-
- ); -} - -async function getRoute( - networkId: number, - migrator: string, - baseAsset: BaseAssetWithAccountState, - tokenState: ATokenState, - uniswapRouter: AlphaRouter, - outputAmount: bigint -): Promise { - const BASE_ASSET = new Token(networkId, baseAsset.address, baseAsset.decimals, baseAsset.symbol, baseAsset.name); - const token = new Token( - networkId, - tokenState.aToken.address, - tokenState.aToken.decimals, - tokenState.aToken.symbol, - tokenState.aToken.symbol - ); - const amount = CurrencyAmount.fromRawAmount(token, outputAmount.toString()); - const route = await uniswapRouter.route( - amount, - BASE_ASSET, - TradeType.EXACT_OUTPUT, - { - slippageTolerance: new Percent(SLIPPAGE_TOLERANCE.toString(), FACTOR_PRECISION.toString()), - type: SwapType.SWAP_ROUTER_02, - recipient: migrator, - deadline: Math.floor(Date.now() / 1000 + 1800) - }, - { - protocols: [Protocol.V3], - maxSplits: 1 // This only makes one path - } + return { + migratorEnabled, + borrowTokens, + collateralTokens + }; + }} + selectMigratorSource={selectMigratorSource} + /> ); - if (route !== null) { - const swapInfo: SwapInfo = { - tokenIn: { - symbol: baseAsset.symbol, - decimals: baseAsset.decimals, - price: baseAsset.price, - amount: BigInt(Number(route.quote.toFixed(baseAsset.decimals)) * 10 ** baseAsset.decimals) - }, - tokenOut: { - symbol: tokenState.aToken.symbol, - decimals: tokenState.aToken.decimals, - price: tokenState.price, - amount: outputAmount - }, - networkFee: `$${route.estimatedGasUsedUSD.toFixed(2)}`, - path: encodeRouteToPath(route.route[0].route as V3Route, true) - }; - return swapInfo; - } else { - return null; - } } diff --git a/web/App.tsx b/web/App.tsx index b85a25c..c5c21ec 100644 --- a/web/App.tsx +++ b/web/App.tsx @@ -1,7 +1,7 @@ import '../styles/main.scss'; import { CometState } from '@compound-finance/comet-extension'; -import { StateType } from '@compound-finance/comet-extension/dist/CometState'; +import { StateType as CometStateType } from '@compound-finance/comet-extension/dist/CometState'; import { useCallback, useEffect, useState } from 'react'; import { LoadingView } from './components/LoadingViews'; @@ -13,22 +13,15 @@ import { usePoll } from './lib/usePoll'; import AaveV2Migrator from './AaveV2Migrator'; import CompoundV2Migrator from './CompoundV2Migrator'; -import { - Network, - NetworkConfig, - getNetworkById, - getNetworkConfig, - AaveNetworkConfig, - getAaveNetworkConfig -} from './Network'; -import { AppProps, MigrationSource } from './types'; +import { getNetworkById, getCompoundNetworkConfig, getAaveNetworkConfig } from './Network'; +import { AaveNetworkConfig, AppProps, CompoundNetworkConfig, Network, MigrationSource } from './types'; export default ({ rpc, web3 }: AppProps) => { const [account, setAccount] = useState(null); - const [cometState, setCometState] = useState([StateType.Loading, undefined]); + const [cometState, setCometState] = useState([CometStateType.Loading, undefined]); const timer = usePoll(!!account ? 30000 : 3000); const [migrationSource, setMigrationSource] = useState(MigrationSource.CompoundV2); - const [compoundNetworkConfig, setCompoundNetworkConfig] = useState | null>(null); + const [compoundNetworkConfig, setCompoundNetworkConfig] = useState | null>(null); const [aaveNetworkConfig, setAaveNetworkConfig] = useState | null>(null); useEffect(() => { @@ -70,7 +63,7 @@ export default ({ rpc, web3 }: AppProps) => { let networkWeb3 = await web3.getNetwork(); let network = getNetworkById(networkWeb3.chainId); if (network) { - setCompoundNetworkConfig(getNetworkConfig(network)); + setCompoundNetworkConfig(getCompoundNetworkConfig(network)); setAaveNetworkConfig(getAaveNetworkConfig(network)); } else { setCompoundNetworkConfig(null); diff --git a/web/CompoundV2Migrator.tsx b/web/CompoundV2Migrator.tsx index a7a6ba0..df07069 100644 --- a/web/CompoundV2Migrator.tsx +++ b/web/CompoundV2Migrator.tsx @@ -1,1389 +1,176 @@ import '../styles/main.scss'; import { CometState } from '@compound-finance/comet-extension'; -import { - BaseAssetWithAccountState, - StateType as CometStateType -} from '@compound-finance/comet-extension/dist/CometState'; import { Contract } from '@ethersproject/contracts'; import { JsonRpcProvider } from '@ethersproject/providers'; -import { Protocol } from '@uniswap/router-sdk'; -import { AlphaRouter, SwapType, V3Route } from '@uniswap/smart-order-router'; -import { CurrencyAmount, Percent, Token, TradeType } from '@uniswap/sdk-core'; -import { encodeRouteToPath } from '@uniswap/v3-sdk'; import { Contract as MulticallContract, Provider } from 'ethers-multicall'; -import { ReactNode, useEffect, useMemo, useReducer, useState } from 'react'; +import { useMemo } from 'react'; import Comet from '../abis/Comet'; import Comptroller from '../abis/Comptroller'; import CToken from '../abis/CToken'; import CompoundV2Oracle from '../abis/Oracle'; -import ApproveModal from './components/ApproveModal'; -import { InputViewError, notEnoughLiquidityError, supplyCapError } from './components/ErrorViews'; -import { ArrowRight, CircleExclamation } from './components/Icons'; -import { LoadingView } from './components/LoadingViews'; - import { multicall } from './helpers/multicall'; -import { - amountToWei, - formatTokenBalance, - getRiskLevelAndPercentage, - maybeBigIntFromString, - parseNumber, - MAX_UINT256, - PRICE_PRECISION, - FACTOR_PRECISION, - SLIPPAGE_TOLERANCE, - BASE_FACTOR -} from './helpers/numbers'; -import { migratorTrxKey, tokenApproveTrxKey, migrationSourceToDisplayString } from './helpers/utils'; -import { useAsyncEffect } from './lib/useAsyncEffect'; -import { usePoll } from './lib/usePoll'; +import Migrator, { MigratorState } from './Migrator'; +import { getIdByNetwork } from './Network'; import { - hasAwaitingConfirmationTransaction, - hasPendingTransaction, - useTransactionTracker -} from './lib/useTransactionTracker'; + AppProps, + CompoundNetworkConfig, + MigrateBorrowTokenState, + MigrateCollateralTokenState, + MigrationSource, + MigrationSourceInfo, + Network, + StateType, + SwapRouteState +} from './types'; -import { CTokenSym, Network, NetworkConfig, getIdByNetwork, stableCoins } from './Network'; -import { AppProps, ApproveModalProps, MigrationSource, StateType, SwapRouteState, SwapInfo } from './types'; -import SwapDropdown from './components/SwapDropdown'; -import Dropdown from './components/Dropdown'; type CompoundV2MigratorProps = AppProps & { account: string; cometState: CometState; - networkConfig: NetworkConfig; + networkConfig: CompoundNetworkConfig; selectMigratorSource: (source: MigrationSource) => void; }; -interface Borrow { - cToken: string; - amount: bigint; -} - -interface Collateral { - cToken: string; - amount: bigint; -} - -interface Swap { - path: string; - amountInMaximum: bigint; -} - -interface CTokenState { - address: string; - allowance: bigint; - balance: bigint; - balanceUnderlying: bigint; - borrowBalance: bigint; - collateralFactor: bigint; - decimals: number; - exchangeRate: bigint; - price: bigint; - repayAmount: string | 'max'; - transfer: string | 'max'; - underlying: { - address: string; - decimals: number; - name: string; - symbol: string; - }; - swapRoute: SwapRouteState; -} - -interface MigratorStateData { - error: string | null; - migratorEnabled: boolean; - cTokens: Map, CTokenState>; -} - -type MigratorStateLoading = { type: StateType.Loading; data: { error: null | string } }; -type MigratorStateHydrated = { - type: StateType.Hydrated; - data: MigratorStateData; -}; -type MigratorState = MigratorStateLoading | MigratorStateHydrated; - -enum ActionType { - ClearRepayAndTransferAmounts = 'clear-amounts', - SetAccountState = 'set-account-state', - SetError = 'set-error', - SetRepayAmount = 'set-repay-amount', - SetSwapRoute = 'set-swap-route', - SetTransferForCToken = 'set-transfer-for-ctoken' -} - -type ActionSetAccountState = { - type: ActionType.SetAccountState; - payload: { - migratorEnabled: boolean; - cTokens: Map, CTokenState>; - }; -}; -type ActionSetError = { - type: ActionType.SetError; - payload: { - error: string; - }; -}; -type ActionSetRepayAmount = { - type: ActionType.SetRepayAmount; - payload: { - symbol: CTokenSym; - repayAmount: string; - }; -}; -type ActionSetSwapRoute = { - type: ActionType.SetSwapRoute; - payload: { - symbol: CTokenSym; - swapRoute: SwapRouteState; - }; -}; -type ActionSetTransferForCToken = { - type: ActionType.SetTransferForCToken; - payload: { - symbol: CTokenSym; - transfer: string; - }; -}; -type ActionClearRepayAndTransferAmounts = { - type: ActionType.ClearRepayAndTransferAmounts; -}; - -type Action = - | ActionClearRepayAndTransferAmounts - | ActionSetAccountState - | ActionSetError - | ActionSetRepayAmount - | ActionSetSwapRoute - | ActionSetTransferForCToken; - -function reducer(state: MigratorState, action: Action): MigratorState { - switch (action.type) { - case ActionType.ClearRepayAndTransferAmounts: { - if (state.type !== StateType.Hydrated) return state; - - const cTokenCopy: Map, CTokenState> = new Map( - Array.from(state.data.cTokens).map(([sym, tokenState]) => { - return [ - sym, - { - ...tokenState, - repayAmount: '', - transfer: '' - } - ]; - }) - ); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - cTokens: cTokenCopy - } - }; - } - case ActionType.SetAccountState: { - return { - type: StateType.Hydrated, - data: { - error: null, - ...action.payload - } - }; - } - case ActionType.SetError: { - const nextState = { ...state }; - nextState.data.error = action.payload.error; - return nextState; - } - case ActionType.SetRepayAmount: { - if (state.type !== StateType.Hydrated) return state; - - const cTokenCopy: Map, CTokenState> = new Map(Array.from(state.data.cTokens)); - cTokenCopy.set(action.payload.symbol, { - ...(state.data.cTokens.get(action.payload.symbol) as CTokenState), - repayAmount: action.payload.repayAmount - }); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - cTokens: cTokenCopy - } - }; - } - case ActionType.SetSwapRoute: { - if (state.type !== StateType.Hydrated) return state; - - const cTokenCopy: Map, CTokenState> = new Map(Array.from(state.data.cTokens)); - cTokenCopy.set(action.payload.symbol, { - ...(state.data.cTokens.get(action.payload.symbol) as CTokenState), - swapRoute: action.payload.swapRoute - }); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - cTokens: cTokenCopy - } - }; - } - case ActionType.SetTransferForCToken: { - if (state.type !== StateType.Hydrated) return state; - - const cTokenCopy: Map, CTokenState> = new Map(Array.from(state.data.cTokens)); - cTokenCopy.set(action.payload.symbol, { - ...(state.data.cTokens.get(action.payload.symbol) as CTokenState), - transfer: action.payload.transfer - }); - - return { - type: StateType.Hydrated, - data: { - ...state.data, - error: null, - cTokens: cTokenCopy - } - }; - } - } -} -const initialState: MigratorState = { type: StateType.Loading, data: { error: null } }; - export default function CompoundV2Migrator({ + rpc, web3, account, cometState, networkConfig, selectMigratorSource }: CompoundV2MigratorProps) { - const [state, dispatch] = useReducer(reducer, initialState); - const [approveModal, setApproveModal] = useState | undefined>( - undefined - ); - const { tracker, trackTransaction } = useTransactionTracker(web3); - - const timer = usePoll(5000); - const routerCache = useMemo(() => new Map(), [networkConfig.network]); - - const signer = useMemo(() => { - return web3.getSigner().connectUnchecked(); - }, [web3, account]); - - const cTokenCtxs = useMemo(() => { - return new Map( - networkConfig.cTokens.map(({ abi, address, symbol }) => [symbol, new Contract(address, abi ?? [], signer)]) - ) as Map, Contract>; - }, [signer]); - - const migrator = useMemo(() => new Contract(networkConfig.migratorAddress, networkConfig.migratorAbi, signer), [ - signer, - networkConfig.network - ]); - const comet = useMemo(() => new MulticallContract(networkConfig.rootsV3.comet, Comet), []); - const comptroller = useMemo(() => new Contract(networkConfig.comptrollerAddress, Comptroller, signer), [ - signer, + const comptroller = useMemo(() => new Contract(networkConfig.comptrollerAddress, Comptroller, web3), [ + web3, networkConfig.network ]); - const comptrollerRead = useMemo(() => new MulticallContract(networkConfig.comptrollerAddress, Comptroller), []); - const compoundOraclePromise = useMemo(async () => { + const oraclePromise = useMemo(async () => { const oracleAddress = await comptroller.oracle(); return new MulticallContract(oracleAddress, CompoundV2Oracle); }, [comptroller]); + return ( + { + const compoundNetworkConfig = networkConfig as CompoundNetworkConfig; + const ethcallProvider = new Provider(web3, getIdByNetwork(compoundNetworkConfig.network)); + const comet = new MulticallContract(compoundNetworkConfig.rootsV3.comet, Comet); + const comptroller = new MulticallContract(compoundNetworkConfig.comptrollerAddress, Comptroller); + const cTokenContracts = compoundNetworkConfig.cTokens.map( + ({ address }) => new MulticallContract(address, CToken) + ); + const oracle = await oraclePromise; - const ethcallProvider = useMemo(() => new Provider(web3, getIdByNetwork(networkConfig.network)), [ - web3, - networkConfig.network - ]); - - async function setTokenApproval(tokenSym: CTokenSym) { - const tokenContract = cTokenCtxs.get(tokenSym)!; - await trackTransaction( - tokenApproveTrxKey(tokenContract.address, migrator.address), - tokenContract.approve(migrator.address, MAX_UINT256) - ); - } - - useAsyncEffect(async () => { - const cTokenContracts = networkConfig.cTokens.map(({ address }) => new MulticallContract(address, CToken)); - const oracle = await compoundOraclePromise; - - const balanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.balanceOf(account)); - const borrowBalanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.borrowBalanceCurrent(account)); - const exchangeRateCalls = cTokenContracts.map(cTokenContract => cTokenContract.exchangeRateCurrent()); - const allowanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.allowance(account, migrator.address)); - const collateralFactorCalls = cTokenContracts.map(cTokenContract => - comptrollerRead.markets(cTokenContract.address) - ); - const priceCalls = networkConfig.cTokens.map(cToken => { - const priceSymbol = cToken.underlying.symbol === 'WBTC' ? 'BTC' : cToken.underlying.symbol; - return oracle.price(priceSymbol); - }); - - const [ - migratorEnabled, - balanceResponses, - borrowBalanceResponses, - exchangeRateResponses, - allowanceResponses, - collateralFactorResponses, - priceResponses - ] = await multicall(ethcallProvider, [ - comet.allowance(account, migrator.address), - balanceCalls, - borrowBalanceCalls, - exchangeRateCalls, - allowanceCalls, - collateralFactorCalls, - priceCalls - ]); + const balanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.balanceOf(account)); + const borrowBalanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.borrowBalanceCurrent(account)); + const exchangeRateCalls = cTokenContracts.map(cTokenContract => cTokenContract.exchangeRateCurrent()); + const allowanceCalls = cTokenContracts.map(cTokenContract => + cTokenContract.allowance(account, compoundNetworkConfig.migratorAddress) + ); + const collateralFactorCalls = cTokenContracts.map(cTokenContract => + comptroller.markets(cTokenContract.address) + ); + const priceCalls = compoundNetworkConfig.cTokens.map(cToken => { + const priceSymbol = cToken.underlying.symbol === 'WBTC' ? 'BTC' : cToken.underlying.symbol; + return oracle.price(priceSymbol); + }); - const balances = balanceResponses.map((balance: any) => balance.toBigInt()); - const borrowBalances = borrowBalanceResponses.map((borrowBalance: any) => borrowBalance.toBigInt()); - const exchangeRates = exchangeRateResponses.map((exchangeRate: any) => exchangeRate.toBigInt()); - const allowances = allowanceResponses.map((allowance: any) => allowance.toBigInt()); - const collateralFactors = collateralFactorResponses.map(([, collateralFactor]: any) => collateralFactor.toBigInt()); - const prices = priceResponses.map((price: any) => price.toBigInt() * 100n); // Scale up to match V3 price precision of 1e8 + const [ + migratorEnabled, + balanceResponses, + borrowBalanceResponses, + exchangeRateResponses, + allowanceResponses, + collateralFactorResponses, + priceResponses + ] = await multicall(ethcallProvider, [ + comet.allowance(account, compoundNetworkConfig.migratorAddress), + balanceCalls, + borrowBalanceCalls, + exchangeRateCalls, + allowanceCalls, + collateralFactorCalls, + priceCalls + ]); + + const balances = balanceResponses.map((balance: any) => balance.toBigInt()); + const borrowBalances = borrowBalanceResponses.map((borrowBalance: any) => borrowBalance.toBigInt()); + const exchangeRates = exchangeRateResponses.map((exchangeRate: any) => exchangeRate.toBigInt()); + const allowances = allowanceResponses.map((allowance: any) => allowance.toBigInt()); + const collateralFactors = collateralFactorResponses.map(([, collateralFactor]: any) => + collateralFactor.toBigInt() + ); + const prices = priceResponses.map((price: any) => price.toBigInt() * 100n); // Scale up to match V3 price precision of 1e8 - const tokenStates = new Map( - networkConfig.cTokens.map((cToken, index) => { - const maybeTokenState = state.type === StateType.Loading ? undefined : state.data.cTokens.get(cToken.symbol); + const borrowTokens: MigrateBorrowTokenState[] = compoundNetworkConfig.cTokens.map((cToken, index) => { + const maybeTokenState = + state.type === StateType.Loading + ? undefined + : state.data.borrowTokens.find(token => token.address === cToken.address); - const balance: bigint = balances[index]; - const borrowBalance: bigint = borrowBalances[index]; - const exchangeRate: bigint = exchangeRates[index]; - const balanceUnderlying: bigint = (balance * exchangeRate) / 1000000000000000000n; - const allowance: bigint = allowances[index]; - const collateralFactor: bigint = collateralFactors[index]; - const decimals: number = cToken.decimals; - const repayAmount: string = maybeTokenState?.repayAmount ?? ''; - const transfer: string = maybeTokenState?.transfer ?? ''; - const swapRoute: SwapRouteState = maybeTokenState?.swapRoute; - const price: bigint = prices[index]; + const borrowBalance: bigint = borrowBalances[index]; + const decimals: number = cToken.decimals; + const repayAmount: string = maybeTokenState?.repayAmount ?? ''; + const swapRoute: SwapRouteState = maybeTokenState?.swapRoute; + const price: bigint = prices[index]; - return [ - cToken.symbol, - { + return { + address: cToken.address, + borrowBalance, + decimals, + name: cToken.name, + price, + repayAmount, + swapRoute, + symbol: cToken.symbol, + underlying: cToken.underlying + }; + }); + const collateralTokens: MigrateCollateralTokenState[] = compoundNetworkConfig.cTokens.map((cToken, index) => { + const maybeTokenState = + state.type === StateType.Loading + ? undefined + : state.data.collateralTokens.find(token => token.address === cToken.address); + + const balance: bigint = balances[index]; + const exchangeRate: bigint = exchangeRates[index]; + const balanceUnderlying: bigint = (balance * exchangeRate) / 1000000000000000000n; + const allowance: bigint = allowances[index]; + const collateralFactor: bigint = collateralFactors[index]; + const decimals: number = cToken.decimals; + const transfer: string = maybeTokenState?.transfer ?? ''; + const price: bigint = prices[index]; + + return { address: cToken.address, allowance, balance, balanceUnderlying, - borrowBalance, collateralFactor, decimals, exchangeRate, + name: cToken.name, price, - underlying: cToken.underlying, - repayAmount, + symbol: cToken.symbol, transfer, - swapRoute - } - ]; - }) - ); - - dispatch({ - type: ActionType.SetAccountState, - payload: { - migratorEnabled, - cTokens: tokenStates - } - }); - }, [timer, tracker, account, networkConfig.network]); - - if (state.type === StateType.Loading || cometState[0] !== CometStateType.Hydrated) { - return ; - } - const cometData = cometState[1]; - - const cTokensWithBorrowBalances = Array.from(state.data.cTokens.entries()).filter(([, tokenState]) => { - return tokenState.borrowBalance > 0n && !!stableCoins.find(coin => coin === tokenState.underlying.symbol); - }); - const collateralWithBalances = Array.from(state.data.cTokens.entries()).filter(([, tokenState]) => { - const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); - return ( - (v3CollateralAsset !== undefined || tokenState.underlying.symbol === cometData.baseAsset.symbol) && - tokenState.balance > 0n - ); - }); - const cTokens = Array.from(state.data.cTokens.entries()); - const v2BorrowValue = cTokens.reduce((acc, [, { borrowBalance, underlying, price, repayAmount }]) => { - const maybeRepayAmount = - repayAmount === 'max' ? borrowBalance : maybeBigIntFromString(repayAmount, underlying.decimals); - const repayAmountBigInt = - maybeRepayAmount === undefined ? 0n : maybeRepayAmount > borrowBalance ? borrowBalance : maybeRepayAmount; - return acc + ((borrowBalance - repayAmountBigInt) * price) / BigInt(10 ** underlying.decimals); - }, BigInt(0)); - const displayV2BorrowValue = formatTokenBalance(PRICE_PRECISION, v2BorrowValue, false, true); - - const v2CollateralValue = cTokens.reduce((acc, [, { balanceUnderlying, underlying, price, transfer }]) => { - const maybeTransfer = transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); - const transferBigInt = - maybeTransfer === undefined ? 0n : maybeTransfer > balanceUnderlying ? balanceUnderlying : maybeTransfer; - return acc + ((balanceUnderlying - transferBigInt) * price) / BigInt(10 ** underlying.decimals); - }, BigInt(0)); - const displayV2CollateralValue = formatTokenBalance(PRICE_PRECISION, v2CollateralValue, false, true); - - const v2UnsupportedBorrowValue = cTokens.reduce((acc, [, { borrowBalance, underlying, price }]) => { - const unsupported = borrowBalance > 0n && !stableCoins.find(coin => coin === underlying.symbol); - const balance = unsupported ? borrowBalance : 0n; - return acc + (balance * price) / BigInt(10 ** underlying.decimals); - }, BigInt(0)); - const displayV2UnsupportedBorrowValue = formatTokenBalance(PRICE_PRECISION, v2UnsupportedBorrowValue, false, true); - const v2UnsupportedCollateralValue = cTokens.reduce((acc, [, { balanceUnderlying, underlying, price }]) => { - const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.symbol === underlying.symbol); - const balance = - v3CollateralAsset === undefined && underlying.symbol !== cometData.baseAsset.symbol ? balanceUnderlying : 0n; - return acc + (balance * price) / BigInt(10 ** underlying.decimals); - }, BigInt(0)); - const displayV2UnsupportedCollateralValue = formatTokenBalance( - PRICE_PRECISION, - v2UnsupportedCollateralValue, - false, - true - ); - - const v2BorrowCapacity = cTokens.reduce( - (acc, [, { balanceUnderlying, collateralFactor, price, transfer, underlying }]) => { - const maybeTransfer = - transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); - const transferBigInt = - maybeTransfer === undefined ? 0n : maybeTransfer > balanceUnderlying ? balanceUnderlying : maybeTransfer; - const dollarValue = ((balanceUnderlying - transferBigInt) * price) / BigInt(10 ** underlying.decimals); - const capacity = (dollarValue * collateralFactor) / BigInt(10 ** FACTOR_PRECISION); - return acc + capacity; - }, - BigInt(0) - ); - const displayV2BorrowCapacity = formatTokenBalance(PRICE_PRECISION, v2BorrowCapacity, false, true); - - const v2AvailableToBorrow = v2BorrowCapacity - v2BorrowValue; - const displayV2AvailableToBorrow = formatTokenBalance(PRICE_PRECISION, v2AvailableToBorrow, false, true); - - const v2ToV3MigrateBorrowValue = cTokens.reduce((acc, [, { borrowBalance, underlying, price, repayAmount }]) => { - const maybeRepayAmount = - repayAmount === 'max' ? borrowBalance : maybeBigIntFromString(repayAmount, underlying.decimals); - const repayAmountBigInt = - maybeRepayAmount === undefined ? 0n : maybeRepayAmount > borrowBalance ? borrowBalance : maybeRepayAmount; - return acc + (repayAmountBigInt * price) / BigInt(10 ** underlying.decimals); - }, BigInt(0)); - const existingBorrowBalance = cometData.baseAsset.balance < 0n ? -cometData.baseAsset.balance : 0n; - const existingBorrowValue: bigint = - (existingBorrowBalance * cometData.baseAsset.price) / BigInt(10 ** cometData.baseAsset.decimals); - const baseAssetTransferValue = cTokens.reduce((acc, [, { balanceUnderlying, underlying, price, transfer }]) => { - if (underlying.symbol === cometData.baseAsset.symbol) { - const maybeTransfer = - transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); - const transferBigInt = - maybeTransfer === undefined ? 0n : maybeTransfer > balanceUnderlying ? balanceUnderlying : maybeTransfer; - return acc + (transferBigInt * price) / BigInt(10 ** underlying.decimals); - } - return acc; - }, BigInt(0)); - const v3BorrowValue = existingBorrowValue + v2ToV3MigrateBorrowValue - baseAssetTransferValue; - - const displayV3BorrowValue = formatTokenBalance(PRICE_PRECISION, v3BorrowValue, false, true); - - const v2ToV3MigrateCollateralValue = cTokens.reduce((acc, [, { balanceUnderlying, underlying, price, transfer }]) => { - const maybeTransfer = transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); - const transferBigInt = - maybeTransfer === undefined || underlying.symbol === cometData.baseAsset.symbol - ? 0n - : maybeTransfer > balanceUnderlying - ? balanceUnderlying - : maybeTransfer; - return acc + (transferBigInt * price) / BigInt(10 ** underlying.decimals); - }, BigInt(0)); - const v3CollateralValuePreMigrate = cometData.collateralAssets.reduce((acc, { balance, decimals, price }) => { - return acc + (balance * price) / BigInt(10 ** decimals); - }, BigInt(0)); - - const v3CollateralValue = v2ToV3MigrateCollateralValue + v3CollateralValuePreMigrate; - const displayV3CollateralValue = formatTokenBalance(PRICE_PRECISION, v3CollateralValue, false, true); - - const v3BorrowCapacityValue = cometData.collateralAssets.reduce( - (acc, { balance, collateralFactor, decimals, price, symbol }) => { - const filteredTokens = cTokens.filter(([, tokenState]) => tokenState.underlying.symbol === symbol); - const transfer = filteredTokens.reduce((acc, [, tokenState]) => { - if (tokenState.transfer === 'max') { - return acc + tokenState.balanceUnderlying; - } else { - const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.underlying.decimals); - return maybeTransfer === undefined - ? acc - : maybeTransfer > tokenState.balanceUnderlying - ? acc + tokenState.balanceUnderlying - : acc + maybeTransfer; - } - }, 0n); - - const dollarValue = ((balance + transfer) * price) / BigInt(10 ** decimals); - const capacity = (dollarValue * collateralFactor) / BigInt(10 ** FACTOR_PRECISION); - - return acc + capacity; - }, - BigInt(0) - ); - const displayV3BorrowCapacity = formatTokenBalance(PRICE_PRECISION, v3BorrowCapacityValue, false, true); - - const v3LiquidationCapacityValue = cometData.collateralAssets.reduce( - (acc, { balance, liquidateCollateralFactor, decimals, price, symbol }) => { - const filteredTokens = cTokens.filter(([, tokenState]) => tokenState.underlying.symbol === symbol); - const transfer = filteredTokens.reduce((acc, [, tokenState]) => { - if (tokenState.transfer === 'max') { - return acc + tokenState.balanceUnderlying; - } else { - const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.underlying.decimals); - return maybeTransfer === undefined - ? acc - : maybeTransfer > tokenState.balanceUnderlying - ? acc + tokenState.balanceUnderlying - : acc + maybeTransfer; - } - }, 0n); - - const dollarValue = ((balance + transfer) * price) / BigInt(10 ** decimals); - const capacity = (dollarValue * liquidateCollateralFactor) / BigInt(10 ** FACTOR_PRECISION); - return acc + capacity; - }, - BigInt(0) - ); - - const v3AvailableToBorrow = v3BorrowCapacityValue - v3BorrowValue; - const displayV3AvailableToBorrow = formatTokenBalance(PRICE_PRECISION, v3AvailableToBorrow, false, true); - - const hasMigratePosition = v2ToV3MigrateBorrowValue > 0n || v2ToV3MigrateCollateralValue > 0n; - - const [v2RiskLevel, v2RiskPercentage, v2RiskPercentageFill] = getRiskLevelAndPercentage( - v2BorrowValue, - v2BorrowCapacity - ); - const [v3RiskLevel, v3RiskPercentage, v3RiskPercentageFill] = getRiskLevelAndPercentage( - v3BorrowValue, - v3LiquidationCapacityValue - ); - const v3LiquidationPoint = (v3CollateralValue * BigInt(Math.min(100, v3RiskPercentage))) / 100n; - const displayV3LiquidationPoint = formatTokenBalance(PRICE_PRECISION, v3LiquidationPoint, false, true); - - function validateForm(): - | [{ collateral: Collateral[]; borrows: Borrow[]; swaps: Swap[] }, bigint] - | string - | undefined { - if (state.type === StateType.Loading || !state.data.migratorEnabled) { - return undefined; - } - - const collateral: Collateral[] = []; - for (let [ - , - { address, balance, balanceUnderlying, underlying, transfer, exchangeRate } - ] of state.data.cTokens.entries()) { - const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === underlying.symbol); - const isBaseAsset = underlying.symbol === cometData.baseAsset.symbol; - - if (!collateralAsset && !isBaseAsset) { - continue; - } - - if (transfer === 'max') { - if (!isBaseAsset && !!collateralAsset && collateralAsset.totalSupply + balance > collateralAsset.supplyCap) { - return undefined; - } - - collateral.push({ - cToken: address, - amount: balance - }); - } else if (transfer !== '') { - const maybeTransfer = maybeBigIntFromString(transfer, underlying.decimals); - if (maybeTransfer !== undefined && maybeTransfer > balanceUnderlying) { - return undefined; - } else if ( - maybeTransfer !== undefined && - !isBaseAsset && - !!collateralAsset && - collateralAsset.totalSupply + maybeTransfer > collateralAsset.supplyCap - ) { - return undefined; - } - - const transferAmount = parseNumber(transfer, n => - amountToWei((n * 1e18) / Number(exchangeRate), underlying.decimals!) - ); - if (transferAmount === null) { - return undefined; - } else { - if (transferAmount > 0n) { - collateral.push({ - cToken: address, - amount: transferAmount - }); - } - } - } - } - - const borrows: Borrow[] = []; - for (let [, { address, borrowBalance, underlying, repayAmount }] of state.data.cTokens.entries()) { - if (repayAmount === 'max') { - borrows.push({ - cToken: address, - amount: MAX_UINT256 + underlying: cToken.underlying + }; }); - } else if (repayAmount !== '') { - const maybeRepayAmount = maybeBigIntFromString(repayAmount, underlying.decimals); - if (maybeRepayAmount !== undefined && maybeRepayAmount > borrowBalance) { - return undefined; - } - - if (maybeRepayAmount === undefined) { - return undefined; - } else { - if (maybeRepayAmount > 0n) { - borrows.push({ - cToken: address, - amount: maybeRepayAmount - }); - } - } - } - } - - const swaps: Swap[] = []; - for (let [, { borrowBalance, repayAmount, swapRoute, underlying }] of state.data.cTokens.entries()) { - const maybeRepayAmount = - repayAmount === 'max' ? borrowBalance : maybeBigIntFromString(repayAmount, underlying.decimals); - - if (maybeRepayAmount !== undefined && maybeRepayAmount > 0n) { - if (underlying.symbol === cometData.baseAsset.symbol) { - swaps.push({ - path: '0x', - amountInMaximum: MAX_UINT256 - }); - } else if (swapRoute !== undefined && swapRoute[0] === StateType.Hydrated) { - swaps.push({ - path: swapRoute[1].path, - amountInMaximum: MAX_UINT256 - }); - } else { - return undefined; - } - } - } - - if (v2BorrowValue > v2BorrowCapacity || v3BorrowValue > v3BorrowCapacityValue) { - return 'Insufficient Collateral'; - } - - if (collateral.length === 0 && borrows.length === 0) { - return; - } - - const oneBaseAssetUnit = BigInt(10 ** cometData.baseAsset.decimals); - const maximumBorrowValue = (v2ToV3MigrateBorrowValue * (BASE_FACTOR + SLIPPAGE_TOLERANCE)) / BASE_FACTOR; // pad borrow value by 1 + SLIPPAGE_TOLERANCE - const flashAmount = (maximumBorrowValue * oneBaseAssetUnit) / cometData.baseAsset.price; - if (flashAmount > cometData.baseAsset.balanceOfComet) { - return `Insufficient ${cometData.baseAsset.symbol} Liquidity`; - } - - return [{ collateral, borrows, swaps }, flashAmount]; - } - - const migrateParams = state.data.error ?? validateForm(); - async function migrate() { - if (migrateParams !== undefined && typeof migrateParams !== 'string') { - try { - await trackTransaction( - migratorTrxKey(migrator.address), - migrator.migrate(migrateParams[0], [[], [], []], migrateParams[1]), - () => { - dispatch({ type: ActionType.ClearRepayAndTransferAmounts }); - } - ); - } catch (e) { - if ('code' in (e as any) && (e as any).code === 'UNPREDICTABLE_GAS_LIMIT') { - dispatch({ - type: ActionType.SetError, - payload: { - error: 'Migration will fail if sent, e.g. due to collateral factors. Please adjust parameters.' - } - }); - } - } - } - } - - const quoteProvider = import.meta.env.VITE_BYPASS_MAINNET_RPC_URL - ? new JsonRpcProvider(import.meta.env.VITE_BYPASS_MAINNET_RPC_URL) - : web3; - const uniswapRouter = new AlphaRouter({ chainId: getIdByNetwork(networkConfig.network), provider: quoteProvider }); - - let borrowEl; - if (cTokensWithBorrowBalances.length > 0) { - borrowEl = cTokensWithBorrowBalances.map(([sym, tokenState]) => { - let repayAmount: string; - let repayAmountDollarValue: string; - let errorTitle: string | undefined; - let errorDescription: string | undefined; - - if (tokenState.repayAmount === 'max') { - repayAmount = formatTokenBalance(tokenState.underlying.decimals, tokenState.borrowBalance, false); - repayAmountDollarValue = formatTokenBalance( - tokenState.underlying.decimals + PRICE_PRECISION, - tokenState.borrowBalance * tokenState.price, - false, - true - ); - - if ( - (tokenState.underlying.symbol === cometData.baseAsset.symbol && - tokenState.borrowBalance > cometData.baseAsset.balanceOfComet) || - (tokenState.swapRoute !== undefined && - tokenState.swapRoute[0] === StateType.Hydrated && - tokenState.swapRoute[1].tokenIn.amount > cometData.baseAsset.balanceOfComet) - ) { - [errorTitle, errorDescription] = notEnoughLiquidityError(cometData.baseAsset); - } - } else { - const maybeRepayAmount = maybeBigIntFromString(tokenState.repayAmount, tokenState.underlying.decimals); - - if (maybeRepayAmount === undefined) { - repayAmount = tokenState.repayAmount; - repayAmountDollarValue = '$0.00'; - } else { - repayAmount = tokenState.repayAmount; - repayAmountDollarValue = formatTokenBalance( - tokenState.underlying.decimals + PRICE_PRECISION, - maybeRepayAmount * tokenState.price, - false, - true - ); - - if (maybeRepayAmount > tokenState.borrowBalance) { - errorTitle = 'Amount Exceeds Borrow Balance.'; - errorDescription = `Value must be less than or equal to ${formatTokenBalance( - tokenState.underlying.decimals, - tokenState.borrowBalance, - false - )}`; - } else if ( - (tokenState.underlying.symbol === cometData.baseAsset.symbol && - maybeRepayAmount > cometData.baseAsset.balanceOfComet) || - (tokenState.swapRoute !== undefined && - tokenState.swapRoute[0] === StateType.Hydrated && - tokenState.swapRoute[1].tokenIn.amount > cometData.baseAsset.balanceOfComet) - ) { - [errorTitle, errorDescription] = notEnoughLiquidityError(cometData.baseAsset); - } - } - } - - return ( -
-
-
-
-
- - {tokenState.underlying.symbol !== cometData.baseAsset.symbol && ( - <> - -
- - - )} -
-
- { - dispatch({ - type: ActionType.SetRepayAmount, - payload: { symbol: sym, repayAmount: e.target.value } - }); - - if (tokenState.underlying.address !== cometData.baseAsset.address) { - const maybeValueBigInt = maybeBigIntFromString(e.target.value, tokenState.underlying.decimals); - - const cacheKey = tokenState.underlying.symbol; - if (maybeValueBigInt !== undefined && maybeValueBigInt > 0n) { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: [StateType.Loading] } - }); - - routerCache.set( - cacheKey, - setTimeout(() => { - getRoute( - getIdByNetwork(networkConfig.network), - migrator.address, - cometData.baseAsset, - tokenState, - uniswapRouter, - maybeValueBigInt - ) - .then(swapInfo => { - if (swapInfo !== null) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: [StateType.Hydrated, swapInfo] } - }); - } - }) - .catch(e => { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: [StateType.Error, 'Failed to fetch prices'] } - }); - }); - }, 300) - ); - } else { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: undefined } - }); - } - } - }} - type="text" - inputMode="decimal" - /> - {tokenState.repayAmount === '' && ( -
- 0.0000 -
- )} -
-

- {repayAmountDollarValue} -

-
-
- -

- V2 balance:{' '} - {formatTokenBalance(tokenState.underlying.decimals, tokenState.borrowBalance, false)} -

-

- {formatTokenBalance( - tokenState.underlying.decimals + PRICE_PRECISION, - tokenState.borrowBalance * tokenState.price, - false, - true - )} -

-
-
- { - const maybeValueBigInt = maybeBigIntFromString(repayAmount, tokenState.underlying.decimals); - - const cacheKey = tokenState.underlying.symbol; - if (maybeValueBigInt !== undefined && maybeValueBigInt > 0n) { - const prevTimeout = routerCache.get(cacheKey); - if (prevTimeout) { - clearTimeout(prevTimeout); - } - - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: [StateType.Loading] } - }); - - routerCache.set( - cacheKey, - setTimeout(() => { - getRoute( - getIdByNetwork(networkConfig.network), - migrator.address, - cometData.baseAsset, - tokenState, - uniswapRouter, - maybeValueBigInt - ) - .then(swapInfo => { - if (swapInfo !== null) { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: [StateType.Hydrated, swapInfo] } - }); - } - }) - .catch(e => { - dispatch({ - type: ActionType.SetSwapRoute, - payload: { symbol: sym, swapRoute: [StateType.Error, 'Failed to fetch prices'] } - }); - }); - }, 300) - ); - } - }} - /> - {!!errorTitle && } -
- ); - }); - } - - let collateralEl = null; - if (collateralWithBalances.length > 0) { - collateralEl = collateralWithBalances.map(([sym, tokenState]) => { - let transfer: string; - let transferDollarValue: string; - let errorTitle: string | undefined; - let errorDescription: string | undefined; - const disabled = tokenState.allowance === 0n; - const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); - - if (tokenState.transfer === 'max') { - transfer = formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false); - transferDollarValue = formatTokenBalance( - tokenState.underlying.decimals + PRICE_PRECISION, - tokenState.balanceUnderlying * tokenState.price, - false, - true - ); - - if ( - collateralAsset !== undefined && - tokenState.balanceUnderlying + collateralAsset.totalSupply > collateralAsset.supplyCap - ) { - [errorTitle, errorDescription] = supplyCapError(collateralAsset); - } - } else { - const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.underlying.decimals); - - if (maybeTransfer === undefined) { - transfer = tokenState.transfer; - transferDollarValue = '$0.00'; - } else { - transfer = tokenState.transfer; - transferDollarValue = formatTokenBalance( - tokenState.underlying.decimals + PRICE_PRECISION, - maybeTransfer * tokenState.price, - false, - true - ); - - if (maybeTransfer > tokenState.balanceUnderlying) { - errorTitle = 'Amount Exceeds Balance.'; - errorDescription = `Value must be less than or equal to ${formatTokenBalance( - tokenState.underlying.decimals, - tokenState.balanceUnderlying, - false - )}`; - } else if ( - collateralAsset !== undefined && - maybeTransfer + collateralAsset.totalSupply > collateralAsset.supplyCap - ) { - [errorTitle, errorDescription] = supplyCapError(collateralAsset); - } - } - } - - const key = tokenApproveTrxKey(tokenState.address, migrator.address); - - return ( -
-
-
-
-
- -
-
- - dispatch({ - type: ActionType.SetTransferForCToken, - payload: { symbol: sym, transfer: e.target.value } - }) - } - type="text" - inputMode="decimal" - disabled={disabled} - /> - {tokenState.transfer === '' && !disabled && ( -
- 0.0000 -
- )} -
-

- {transferDollarValue} -

-
-
- {disabled ? ( - - ) : ( - - )} -

- V2 balance:{' '} - {formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false)} -

-

- {formatTokenBalance( - tokenState.underlying.decimals + PRICE_PRECISION, - tokenState.balanceUnderlying * tokenState.price, - false, - true - )} -

-
-
- {!!errorTitle && } -
- ); - }); - } - - let migrateButtonText: ReactNode; - - if (hasAwaitingConfirmationTransaction(tracker, migratorTrxKey(migrator.address))) { - migrateButtonText = 'Waiting For Confirmation'; - } else if (hasPendingTransaction(tracker)) { - migrateButtonText = 'Transaction Pending...'; - } else if (typeof migrateParams === 'string') { - migrateButtonText = migrateParams; - } else { - migrateButtonText = 'Migrate Balances'; - } - - return ( -
- {!!approveModal && } -
-
-
-
-
-

Balances

-
-

- Select a source and the balances you want to migrate to Compound V3. If you are supplying{' '} - {cometData.baseAsset.symbol} on one market while borrowing on the other, your ending balance will be the - net of these two balances. -

-
- - [ - source, - migrationSourceToDisplayString(source) - ])} - selectedOption={migrationSourceToDisplayString(MigrationSource.CompoundV2)} - selectOption={(option: [string, string]) => { - selectMigratorSource(option[0] as MigrationSource); - }} - /> -
- - {borrowEl === undefined ? ( -
- -

No balances to show.

-
- ) : ( - <> -
- - {borrowEl} - {v2UnsupportedBorrowValue > 0n && ( -
0 ? '1rem' : '0rem' }} - > - -

- {displayV2UnsupportedBorrowValue} of non-stable Compound V2 borrow value -

-
- )} -
-
- - {collateralEl} - {v2UnsupportedCollateralValue > 0n && ( -
0 ? '1rem' : '0rem' }} - > - -

- {displayV2UnsupportedCollateralValue} of V2 collateral value cannot be migrated due to - unsupported collateral in V3. -

-
- )} -
- - )} -
-
-
-
-
-

Summary

-
-

- If you are borrowing other assets on Compound V2, migrating too much collateral could increase your - liquidation risk. -

-
- -
-
-

Borrowing

-

{displayV2BorrowValue}

-
-
-
-
-

Collateral Value

-

{displayV2CollateralValue}

-
-
-

Borrow Capacity

-

{displayV2BorrowCapacity}

-
-
-
-
-

Available to Borrow

-

{displayV2AvailableToBorrow}

-
-
-
-
-

Liquidation Risk

-

{`${v2RiskPercentage.toFixed(0)}%`}

-
-
-
-
-
-
-
-
-
- -
-
-

Borrowing

-

{displayV3BorrowValue}

-
-
-
-
-

Collateral Value

-

{displayV3CollateralValue}

-
-
-

Borrow Capacity

-

{displayV3BorrowCapacity}

-
-
-
-
-

Available to Borrow

-

{displayV3AvailableToBorrow}

-
-
-

Liquidation Point

-

{displayV3LiquidationPoint}

-
-
-
-
-

Liquidation Risk

-

{`${v3RiskPercentage.toFixed(0)}%`}

-
-
-
-
-
-
-
-
- -
-
-
-
-
- ); -} - -async function getRoute( - networkId: number, - migrator: string, - baseAsset: BaseAssetWithAccountState, - tokenState: CTokenState, - uniswapRouter: AlphaRouter, - outputAmount: bigint -): Promise { - const BASE_ASSET = new Token(networkId, baseAsset.address, baseAsset.decimals, baseAsset.symbol, baseAsset.name); - const token = new Token( - networkId, - tokenState.underlying.address, - tokenState.underlying.decimals, - tokenState.underlying.symbol, - tokenState.underlying.symbol - ); - const amount = CurrencyAmount.fromRawAmount(token, outputAmount.toString()); - const route = await uniswapRouter.route( - amount, - BASE_ASSET, - TradeType.EXACT_OUTPUT, - { - slippageTolerance: new Percent(SLIPPAGE_TOLERANCE.toString(), FACTOR_PRECISION.toString()), - type: SwapType.SWAP_ROUTER_02, - recipient: migrator, - deadline: Math.floor(Date.now() / 1000 + 1800) - }, - { - protocols: [Protocol.V3], - maxSplits: 1 // This only makes one path - } + return { + migratorEnabled, + borrowTokens, + collateralTokens + }; + }} + selectMigratorSource={selectMigratorSource} + /> ); - if (route !== null) { - const swapInfo: SwapInfo = { - tokenIn: { - symbol: baseAsset.symbol, - decimals: baseAsset.decimals, - price: baseAsset.price, - amount: BigInt(Number(route.quote.toFixed(baseAsset.decimals)) * 10 ** baseAsset.decimals) - }, - tokenOut: { - symbol: tokenState.underlying.symbol, - decimals: tokenState.underlying.decimals, - price: tokenState.price, - amount: outputAmount - }, - networkFee: `$${route.estimatedGasUsedUSD.toFixed(2)}`, - path: encodeRouteToPath(route.route[0].route as V3Route, true) - }; - return swapInfo; - } else { - return null; - } } diff --git a/web/Migrator.tsx b/web/Migrator.tsx new file mode 100644 index 0000000..e15102e --- /dev/null +++ b/web/Migrator.tsx @@ -0,0 +1,1010 @@ +import '../styles/main.scss'; + +import { CometState } from '@compound-finance/comet-extension'; +import { StateType as CometStateType } from '@compound-finance/comet-extension/dist/CometState'; +import { Contract } from '@ethersproject/contracts'; +import { JsonRpcProvider } from '@ethersproject/providers'; +import { AlphaRouter } from '@uniswap/smart-order-router'; +import { ReactNode, useMemo, useReducer, useState } from 'react'; + +import ERC20 from '../abis/ERC20'; + +import ApproveModal from './components/ApproveModal'; +import { InputViewError, notEnoughLiquidityError, supplyCapError } from './components/ErrorViews'; +import { ArrowRight, CircleExclamation } from './components/Icons'; +import { LoadingView } from './components/LoadingViews'; + +import { formatTokenBalance, maybeBigIntFromString, PRICE_PRECISION } from './helpers/numbers'; +import { + migratorTrxKey, + tokenApproveTrxKey, + migrationSourceToDisplayString, + stableCoins, + getFormattedDisplayData, + validateForm, + getRoute, + approve, + migrate +} from './helpers/utils'; + +import { useAsyncEffect } from './lib/useAsyncEffect'; +import { usePoll } from './lib/usePoll'; +import { + hasAwaitingConfirmationTransaction, + hasPendingTransaction, + useTransactionTracker +} from './lib/useTransactionTracker'; + +import { getIdByNetwork } from './Network'; +import { + AppProps, + ApproveModalProps, + MigrationSource, + StateType, + SwapRouteState, + MigrateBorrowTokenState, + MigrateCollateralTokenState, + MigrationSourceInfo +} from './types'; +import SwapDropdown from './components/SwapDropdown'; +import Dropdown from './components/Dropdown'; + +type MigratorProps = AppProps & { + account: string; + cometState: CometState; + migrationSourceInfo: MigrationSourceInfo; + getMigrateData: ( + web3: JsonRpcProvider, + migrationSourceInfo: MigrationSourceInfo, + migratorState: MigratorState + ) => Promise<{ + migratorEnabled: boolean; + borrowTokens: MigrateBorrowTokenState[]; + collateralTokens: MigrateCollateralTokenState[]; + }>; + selectMigratorSource: (source: MigrationSource) => void; +}; + +export interface MigratorStateData { + error: string | null; + migratorEnabled: boolean; + borrowTokens: MigrateBorrowTokenState[]; + collateralTokens: MigrateCollateralTokenState[]; +} + +export type MigratorStateLoading = { type: StateType.Loading; data: { error: null | string } }; +export type MigratorStateHydrated = { + type: StateType.Hydrated; + data: MigratorStateData; +}; +export type MigratorState = MigratorStateLoading | MigratorStateHydrated; + +enum ActionType { + ClearRepayAndTransferAmounts = 'clear-amounts', + SetAccountState = 'set-account-state', + SetError = 'set-error', + SetRepayAmount = 'set-repay-amount', + SetSwapRoute = 'set-swap-route', + SetTransferForCollateralToken = 'set-transfer-for-collateral-token' +} + +type ActionSetAccountState = { + type: ActionType.SetAccountState; + payload: { + migratorEnabled: boolean; + borrowTokens: MigrateBorrowTokenState[]; + collateralTokens: MigrateCollateralTokenState[]; + }; +}; +type ActionSetError = { + type: ActionType.SetError; + payload: { + error: string; + }; +}; +type ActionSetRepayAmount = { + type: ActionType.SetRepayAmount; + payload: { + address: string; + repayAmount: string; + }; +}; +type ActionSetSwapRoute = { + type: ActionType.SetSwapRoute; + payload: { + address: string; + swapRoute: SwapRouteState; + }; +}; +type ActionSetTransferForCollateralToken = { + type: ActionType.SetTransferForCollateralToken; + payload: { + address: string; + transfer: string; + }; +}; +type ActionClearRepayAndTransferAmounts = { + type: ActionType.ClearRepayAndTransferAmounts; +}; + +type Action = + | ActionClearRepayAndTransferAmounts + | ActionSetAccountState + | ActionSetError + | ActionSetRepayAmount + | ActionSetSwapRoute + | ActionSetTransferForCollateralToken; + +function reducer(state: MigratorState, action: Action): MigratorState { + switch (action.type) { + case ActionType.ClearRepayAndTransferAmounts: { + if (state.type !== StateType.Hydrated) return state; + + const borrowTokens: MigrateBorrowTokenState[] = state.data.borrowTokens.map(tokenState => { + return { + ...tokenState, + repayAmount: '' + }; + }); + + const collateralTokens: MigrateCollateralTokenState[] = state.data.collateralTokens.map(tokenState => { + return { + ...tokenState, + transfer: '' + }; + }); + + return { + type: StateType.Hydrated, + data: { + ...state.data, + error: null, + borrowTokens, + collateralTokens + } + }; + } + case ActionType.SetAccountState: { + return { + type: StateType.Hydrated, + data: { + error: null, + ...action.payload + } + }; + } + case ActionType.SetError: { + const nextState = { ...state }; + nextState.data.error = action.payload.error; + return nextState; + } + case ActionType.SetRepayAmount: { + if (state.type !== StateType.Hydrated) return state; + + const borrowTokens: MigrateBorrowTokenState[] = state.data.borrowTokens.map(tokenState => { + return tokenState.address === action.payload.address + ? { + ...tokenState, + repayAmount: action.payload.repayAmount + } + : tokenState; + }); + + return { + type: StateType.Hydrated, + data: { + ...state.data, + error: null, + borrowTokens + } + }; + } + case ActionType.SetSwapRoute: { + if (state.type !== StateType.Hydrated) return state; + + const borrowTokens: MigrateBorrowTokenState[] = state.data.borrowTokens.map(tokenState => { + return tokenState.address === action.payload.address + ? { + ...tokenState, + swapRoute: action.payload.swapRoute + } + : tokenState; + }); + + return { + type: StateType.Hydrated, + data: { + ...state.data, + error: null, + borrowTokens + } + }; + } + case ActionType.SetTransferForCollateralToken: { + if (state.type !== StateType.Hydrated) return state; + + const collateralTokens: MigrateCollateralTokenState[] = state.data.collateralTokens.map(tokenState => { + return tokenState.address === action.payload.address + ? { + ...tokenState, + transfer: action.payload.transfer + } + : tokenState; + }); + + return { + type: StateType.Hydrated, + data: { + ...state.data, + error: null, + collateralTokens + } + }; + } + } +} + +const initialState: MigratorState = { type: StateType.Loading, data: { error: null } }; + +export default function Migrator({ + web3, + account, + cometState, + migrationSourceInfo, + getMigrateData, + selectMigratorSource +}: MigratorProps) { + const [state, dispatch] = useReducer(reducer, initialState); + const [approveModal, setApproveModal] = useState | undefined>( + undefined + ); + const { tracker, trackTransaction } = useTransactionTracker(web3); + + const [migrationSource, networkConfig] = migrationSourceInfo; + + const timer = usePoll(10000); + const routerCache = useMemo(() => new Map(), [networkConfig.network]); + + const signer = useMemo(() => { + return web3.getSigner().connectUnchecked(); + }, [web3, account]); + + const migrator = useMemo(() => new Contract(networkConfig.migratorAddress, networkConfig.migratorAbi, signer), [ + signer, + networkConfig.network + ]); + + useAsyncEffect(async () => { + const { borrowTokens, collateralTokens, migratorEnabled } = await getMigrateData(web3, migrationSourceInfo, state); + + dispatch({ + type: ActionType.SetAccountState, + payload: { + borrowTokens, + collateralTokens, + migratorEnabled + } + }); + }, [timer, tracker, account, networkConfig.network]); + + if (state.type === StateType.Loading || cometState[0] !== CometStateType.Hydrated) { + return ; + } + const cometData = cometState[1]; + const { borrowTokens, collateralTokens, migratorEnabled } = state.data; + + const tokensWithBorrowBalances = borrowTokens.filter(tokenState => { + return tokenState.borrowBalance > 0n && !!stableCoins.find(coin => coin === tokenState.underlying.symbol); + }); + const tokensWithCollateralBalances = collateralTokens.filter(tokenState => { + const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); + return ( + (v3CollateralAsset !== undefined || tokenState.underlying.symbol === cometData.baseAsset.symbol) && + tokenState.balance > 0n + ); + }); + + const { + displayV2BorrowValue, + displayV2CollateralValue, + displayV2UnsupportedBorrowValue, + displayV2UnsupportedCollateralValue, + displayV2BorrowCapacity, + displayV2AvailableToBorrow, + displayV3BorrowValue, + displayV3CollateralValue, + displayV3BorrowCapacity, + displayV3AvailableToBorrow, + hasMigratePosition, + v2BorrowCapacity, + v2BorrowValue, + v2RiskLevel, + v2RiskPercentage, + v2RiskPercentageFill, + v2ToV3MigrateBorrowValue, + v2UnsupportedBorrowValue, + v2UnsupportedCollateralValue, + v3BorrowCapacityValue, + v3BorrowValue, + v3RiskLevel, + v3RiskPercentage, + v3RiskPercentageFill, + displayV3LiquidationPoint + } = getFormattedDisplayData({ borrowTokens, collateralTokens, cometData }); + const displayMigrationSource = migrationSourceToDisplayString(migrationSource); + + const migrateParams = + state.data.error ?? + validateForm({ + borrowTokens, + collateralTokens, + cometData, + migratorEnabled, + migrationSource, + v2BorrowCapacity, + v2BorrowValue, + v2ToV3MigrateBorrowValue, + v3BorrowCapacityValue, + v3BorrowValue, + stateType: state.type + }); + console.log('MIgrate Params', migrateParams); + + const quoteProvider = import.meta.env.VITE_BYPASS_MAINNET_RPC_URL + ? new JsonRpcProvider(import.meta.env.VITE_BYPASS_MAINNET_RPC_URL) + : web3; + const uniswapRouter = new AlphaRouter({ chainId: getIdByNetwork(networkConfig.network), provider: quoteProvider }); + + let borrowEl; + if (tokensWithBorrowBalances.length > 0) { + borrowEl = tokensWithBorrowBalances.map(tokenState => { + let repayAmount: string; + let repayAmountDollarValue: string; + let errorTitle: string | undefined; + let errorDescription: string | undefined; + + if (tokenState.repayAmount === 'max') { + repayAmount = formatTokenBalance(tokenState.underlying.decimals, tokenState.borrowBalance, false); + repayAmountDollarValue = formatTokenBalance( + tokenState.underlying.decimals + PRICE_PRECISION, + tokenState.borrowBalance * tokenState.price, + false, + true + ); + + if ( + (tokenState.underlying.symbol === cometData.baseAsset.symbol && + tokenState.borrowBalance > cometData.baseAsset.balanceOfComet) || + (tokenState.swapRoute !== undefined && + tokenState.swapRoute[0] === StateType.Hydrated && + tokenState.swapRoute[1].tokenIn.amount > cometData.baseAsset.balanceOfComet) + ) { + [errorTitle, errorDescription] = notEnoughLiquidityError(cometData.baseAsset); + } + } else { + const maybeRepayAmount = maybeBigIntFromString(tokenState.repayAmount, tokenState.underlying.decimals); + + if (maybeRepayAmount === undefined) { + repayAmount = tokenState.repayAmount; + repayAmountDollarValue = '$0.00'; + } else { + repayAmount = tokenState.repayAmount; + repayAmountDollarValue = formatTokenBalance( + tokenState.underlying.decimals + PRICE_PRECISION, + maybeRepayAmount * tokenState.price, + false, + true + ); + + if (maybeRepayAmount > tokenState.borrowBalance) { + errorTitle = 'Amount Exceeds Borrow Balance.'; + errorDescription = `Value must be less than or equal to ${formatTokenBalance( + tokenState.underlying.decimals, + tokenState.borrowBalance, + false + )}`; + } else if ( + (tokenState.underlying.symbol === cometData.baseAsset.symbol && + maybeRepayAmount > cometData.baseAsset.balanceOfComet) || + (tokenState.swapRoute !== undefined && + tokenState.swapRoute[0] === StateType.Hydrated && + tokenState.swapRoute[1].tokenIn.amount > cometData.baseAsset.balanceOfComet) + ) { + [errorTitle, errorDescription] = notEnoughLiquidityError(cometData.baseAsset); + } + } + } + + return ( +
+
+
+
+
+ + {tokenState.underlying.symbol !== cometData.baseAsset.symbol && ( + <> + +
+ + + )} +
+
+ { + dispatch({ + type: ActionType.SetRepayAmount, + payload: { address: tokenState.address, repayAmount: e.target.value } + }); + + if (tokenState.underlying.address !== cometData.baseAsset.address) { + const maybeValueBigInt = maybeBigIntFromString(e.target.value, tokenState.underlying.decimals); + + const cacheKey = tokenState.underlying.symbol; + if (maybeValueBigInt !== undefined && maybeValueBigInt > 0n) { + const prevTimeout = routerCache.get(cacheKey); + if (prevTimeout) { + clearTimeout(prevTimeout); + } + + dispatch({ + type: ActionType.SetSwapRoute, + payload: { address: tokenState.address, swapRoute: [StateType.Loading] } + }); + + routerCache.set( + cacheKey, + setTimeout(() => { + getRoute( + getIdByNetwork(networkConfig.network), + migrator.address, + cometData.baseAsset, + tokenState, + uniswapRouter, + maybeValueBigInt + ) + .then(swapInfo => { + if (swapInfo !== null) { + dispatch({ + type: ActionType.SetSwapRoute, + payload: { address: tokenState.address, swapRoute: [StateType.Hydrated, swapInfo] } + }); + } + }) + .catch(e => { + dispatch({ + type: ActionType.SetSwapRoute, + payload: { + address: tokenState.address, + swapRoute: [StateType.Error, 'Failed to fetch prices'] + } + }); + }); + }, 300) + ); + } else { + const prevTimeout = routerCache.get(cacheKey); + if (prevTimeout) { + clearTimeout(prevTimeout); + } + dispatch({ + type: ActionType.SetSwapRoute, + payload: { address: tokenState.address, swapRoute: undefined } + }); + } + } + }} + type="text" + inputMode="decimal" + /> + {tokenState.repayAmount === '' && ( +
+ 0.0000 +
+ )} +
+

+ {repayAmountDollarValue} +

+
+
+ +

+ V2 balance:{' '} + {formatTokenBalance(tokenState.underlying.decimals, tokenState.borrowBalance, false)} +

+

+ {formatTokenBalance( + tokenState.underlying.decimals + PRICE_PRECISION, + tokenState.borrowBalance * tokenState.price, + false, + true + )} +

+
+
+ { + const maybeValueBigInt = maybeBigIntFromString(repayAmount, tokenState.underlying.decimals); + + const cacheKey = tokenState.underlying.symbol; + if (maybeValueBigInt !== undefined && maybeValueBigInt > 0n) { + const prevTimeout = routerCache.get(cacheKey); + if (prevTimeout) { + clearTimeout(prevTimeout); + } + + dispatch({ + type: ActionType.SetSwapRoute, + payload: { address: tokenState.address, swapRoute: [StateType.Loading] } + }); + + routerCache.set( + cacheKey, + setTimeout(() => { + getRoute( + getIdByNetwork(networkConfig.network), + migrator.address, + cometData.baseAsset, + tokenState, + uniswapRouter, + maybeValueBigInt + ) + .then(swapInfo => { + if (swapInfo !== null) { + dispatch({ + type: ActionType.SetSwapRoute, + payload: { address: tokenState.address, swapRoute: [StateType.Hydrated, swapInfo] } + }); + } + }) + .catch(e => { + dispatch({ + type: ActionType.SetSwapRoute, + payload: { + address: tokenState.address, + swapRoute: [StateType.Error, 'Failed to fetch prices'] + } + }); + }); + }, 300) + ); + } + }} + /> + {!!errorTitle && } +
+ ); + }); + } + + let collateralEl = null; + if (tokensWithCollateralBalances.length > 0) { + collateralEl = tokensWithCollateralBalances.map(tokenState => { + let transfer: string; + let transferDollarValue: string; + let errorTitle: string | undefined; + let errorDescription: string | undefined; + const disabled = tokenState.allowance === 0n; + const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); + + if (tokenState.underlying.symbol === 'UNI') { + console.log( + tokenState.underlying.decimals, + tokenState.balanceUnderlying, + formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false) + ); + } + + if (tokenState.transfer === 'max') { + transfer = formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false); + transferDollarValue = formatTokenBalance( + tokenState.underlying.decimals + PRICE_PRECISION, + tokenState.balanceUnderlying * tokenState.price, + false, + true + ); + + if ( + collateralAsset !== undefined && + tokenState.balanceUnderlying + collateralAsset.totalSupply > collateralAsset.supplyCap + ) { + [errorTitle, errorDescription] = supplyCapError(collateralAsset); + } + } else { + const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.underlying.decimals); + + if (maybeTransfer === undefined) { + transfer = tokenState.transfer; + transferDollarValue = '$0.00'; + } else { + transfer = tokenState.transfer; + transferDollarValue = formatTokenBalance( + tokenState.underlying.decimals + PRICE_PRECISION, + maybeTransfer * tokenState.price, + false, + true + ); + + if (maybeTransfer > tokenState.balanceUnderlying) { + errorTitle = 'Amount Exceeds Balance.'; + errorDescription = `Value must be less than or equal to ${formatTokenBalance( + tokenState.underlying.decimals, + tokenState.balanceUnderlying, + false + )}`; + } else if ( + collateralAsset !== undefined && + maybeTransfer + collateralAsset.totalSupply > collateralAsset.supplyCap + ) { + [errorTitle, errorDescription] = supplyCapError(collateralAsset); + } + } + } + + const key = tokenApproveTrxKey(tokenState.address, migrator.address); + + return ( +
+
+
+
+
+ +
+
+ + dispatch({ + type: ActionType.SetTransferForCollateralToken, + payload: { address: tokenState.address, transfer: e.target.value } + }) + } + type="text" + inputMode="decimal" + disabled={disabled} + /> + {tokenState.transfer === '' && !disabled && ( +
+ 0.0000 +
+ )} +
+

+ {transferDollarValue} +

+
+
+ {disabled ? ( + + ) : ( + + )} +

+ V2 balance:{' '} + {formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false)} +

+

+ {formatTokenBalance( + tokenState.underlying.decimals + PRICE_PRECISION, + tokenState.balanceUnderlying * tokenState.price, + false, + true + )} +

+
+
+ {!!errorTitle && } +
+ ); + }); + } + + let migrateButtonText: ReactNode; + + if (hasAwaitingConfirmationTransaction(tracker, migratorTrxKey(migrator.address))) { + migrateButtonText = 'Waiting For Confirmation'; + } else if (hasPendingTransaction(tracker)) { + migrateButtonText = 'Transaction Pending...'; + } else if (typeof migrateParams === 'string') { + migrateButtonText = migrateParams; + } else { + migrateButtonText = 'Migrate Balances'; + } + + return ( +
+ {!!approveModal && } +
+
+
+
+
+

Balances

+
+

+ Select a source and the balances you want to migrate to Compound V3. If you are supplying{' '} + {cometData.baseAsset.symbol} on one market while borrowing on the other, your ending balance will be the + net of these two balances. +

+
+ + [ + source, + migrationSourceToDisplayString(source) + ])} + selectedOption={migrationSourceToDisplayString(migrationSource)} + selectOption={(option: [string, string]) => { + selectMigratorSource(option[0] as MigrationSource); + }} + /> +
+ + {borrowEl === undefined ? ( +
+ +

No balances to show.

+
+ ) : ( + <> +
+ + {borrowEl} + {v2UnsupportedBorrowValue > 0n && ( +
+ +

+ {displayV2UnsupportedBorrowValue} of non-stable {displayMigrationSource} borrow value +

+
+ )} +
+
+ + {collateralEl} + {v2UnsupportedCollateralValue > 0n && ( +
0 ? '1rem' : '0rem' }} + > + +

+ {displayV2UnsupportedCollateralValue} of {displayMigrationSource} collateral value cannot be + migrated due to unsupported collateral in Compound V3. +

+
+ )} +
+ + )} +
+
+
+
+
+

Summary

+
+

+ If you are borrowing other assets on {displayMigrationSource}, migrating too much collateral could + increase your liquidation risk. +

+
+ +
+
+

Borrowing

+

{displayV2BorrowValue}

+
+
+
+
+

Collateral Value

+

{displayV2CollateralValue}

+
+
+

Borrow Capacity

+

{displayV2BorrowCapacity}

+
+
+
+
+

Available to Borrow

+

{displayV2AvailableToBorrow}

+
+
+
+
+

Liquidation Risk

+

{`${v2RiskPercentage.toFixed(0)}%`}

+
+
+
+
+
+
+
+
+
+ +
+
+

Borrowing

+

{displayV3BorrowValue}

+
+
+
+
+

Collateral Value

+

{displayV3CollateralValue}

+
+
+

Borrow Capacity

+

{displayV3BorrowCapacity}

+
+
+
+
+

Available to Borrow

+

{displayV3AvailableToBorrow}

+
+
+

Liquidation Point

+

{displayV3LiquidationPoint}

+
+
+
+
+

Liquidation Risk

+

{`${v3RiskPercentage.toFixed(0)}%`}

+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ ); +} diff --git a/web/Network.ts b/web/Network.ts index effb992..6b6af4f 100644 --- a/web/Network.ts +++ b/web/Network.ts @@ -4,145 +4,22 @@ import mainnetV3Roots from '../node_modules/comet/deployments/mainnet/usdc/roots import mainnetV2Roots from '../node_modules/compound-config/networks/mainnet.json'; import mainnetV2Abi from '../node_modules/compound-config/networks/mainnet-abi.json'; -import goerliV3Roots from '../node_modules/comet/deployments/goerli/usdc/roots.json'; -import goerliV2Roots from '../node_modules/compound-config/networks/goerli.json'; -import goerliV2Abi from '../node_modules/compound-config/networks/goerli-abi.json'; - import cometMigratorAbi from '../abis/CometMigratorV2'; import ATokens from './helpers/Aave/config'; - -type ConstTupleItems = Tuple[Exclude>]; - -export const networks = ['goerli', 'mainnet'] as const; -export type Network = ConstTupleItems; -export const goerli: Network = networks[0]; -export const mainnet: Network = networks[1]; - -const mainnetTokens = [ - 'cZRX', - 'cWBTC', - 'cWBTC2', - 'cUSDT', - 'cUSDC', - 'cETH', - 'cREP', - 'cBAT', - 'cCOMP', - 'cLINK', - 'cUNI', - 'cDAI', - 'cTUSD', - 'cSUSHI', - 'cAAVE', - 'cYFI', - 'cMKR', - 'cUSDP' -] as const; - -const mainnetAaveTokens = [ - 'aUSDT', - 'aWBTC', - 'aWETH', - 'aYFI', - 'aZRX', - 'aUNI', - 'aAAVE', - 'aBAT', - 'aBUSD', - 'aDAI', - 'aENJ', - 'aKNC', - 'aLINK', - 'aMANA', - 'aMKR', - 'aREN', - 'aSNX', - 'aSUSD', - 'aTUSD', - 'aUSDC', - 'aCRV', - 'aGUSD', - 'aBAL', - 'aXSUSHI', - 'aRENFIL', - 'aRAI', - 'aAMPL', - 'aUSDP', - 'aDPI', - 'aFRAX', - 'aFEI', - 'aENS', - 'aSTETH' -] as const; - -const goerliTokens = ['cETH', 'cDAI', 'cUSDC', 'cWBTC'] as const; - -export const stableCoins = ['USDC', 'USDT', 'DAI', 'BUSD', 'SUSD', 'TUSD', 'GUSD', 'USDP', 'RAI'] as const; - -export type ATokenSym = Network extends 'mainnet' ? ConstTupleItems : never; - -export type CTokenSym = Network extends 'mainnet' - ? ConstTupleItems - : Network extends 'goerli' - ? ConstTupleItems - : never; - -export type RootsV2 = Network extends 'mainnet' - ? typeof mainnetV2Roots.Contracts - : Network extends 'goerli' - ? typeof goerliV2Roots.Contracts - : never; - -export type RootsV3 = Network extends 'mainnet' - ? typeof mainnetV3Roots - : Network extends 'goerli' - ? typeof goerliV3Roots - : never; - -interface CToken { - abi: JsonFragment[]; - address: string; - decimals: number; - name: string; - symbol: CTokenSym; - underlying: { - address: string; - decimals: number; - name: string; - symbol: string; - }; -} - -export interface AToken { - aTokenAddress: string; - aTokenSymbol: ATokenSym; - stableDebtTokenAddress: string; - variableDebtTokenAddress: string; - symbol: string; - address: string; - decimals: number; -} - -export interface NetworkConfig { - network: Network; - comptrollerAddress: string; - migratorAddress: string; - migratorAbi: typeof cometMigratorAbi; - cTokens: CToken[]; - rootsV2: RootsV2; - rootsV3: RootsV3; -} - -export interface AaveNetworkConfig { - aTokens: AToken[]; - lendingPoolAddressesProviderAddress: string; - lendingPoolAddress: string; - migratorAbi: typeof cometMigratorAbi; - migratorAddress: string; - network: Network; - rootsV3: RootsV3; -} +import { mainnetCompoundTokens } from './helpers/utils'; + +import { + AaveNetworkConfig, + AToken, + CompoundNetworkConfig, + CTokenSym, + CToken, + Network, + networks, + RootsV2, + RootsV3 +} from './types'; export function isNetwork(network: string): network is Network { return networks.includes(network as any); @@ -152,23 +29,17 @@ export function isMainnet(network: Network): network is 'mainnet' { return network === 'mainnet'; } -export function isGoerli(network: Network): network is 'goerli' { - return network === 'goerli'; -} - export function getNetwork(network: string): Network { if (isNetwork(network)) { - return network; // this is now narrowed to `'goerli'|'mainnet'` + return network; // this is now narrowed to `'mainnet'` } else { - throw new Error(`not a network: ${network}`); + throw new Error(`not a supported network: ${network}`); } } export function showNetwork(network: Network): string { if (network === 'mainnet') { return 'mainnet'; - } else if (network === 'goerli') { - return 'goerli'; } throw 'invalid'; } @@ -176,8 +47,6 @@ export function showNetwork(network: Network): string { export function getIdByNetwork(network: Network): number { if (network === 'mainnet') { return 1; - } else if (network === 'goerli') { - return 5; } throw 'invalid'; } @@ -185,8 +54,6 @@ export function getIdByNetwork(network: Network): number { export function getNetworkById(chainId: number): Network | null { if (chainId === 1) { return 'mainnet'; - } else if (chainId === 5) { - return 'goerli'; } else { return null; } @@ -195,28 +62,16 @@ export function getNetworkById(chainId: number): Network | null { function getMigratorAddress(network: Network): string { if (network === 'mainnet') { return import.meta.env.VITE_MAINNET_EXT_ADDRESS; - } else if (network === 'goerli') { - return import.meta.env.VITE_GOERLI_EXT_ADDRESS; - } - - return null as never; -} - -function getComptrollerAddress(network: Network): string { - if (network === 'mainnet') { - return '0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B'; - } else if (network === 'goerli') { - return '0x3cBe63aAcF6A064D32072a630A3eab7545C54d78'; } return null as never; } -export function mainnetConfig(network: N): NetworkConfig<'mainnet'> { +export function compoundMainnetConfig(network: N): CompoundNetworkConfig<'mainnet'> { const migratorAddress: string = getMigratorAddress(network); - const comptrollerAddress: string = getComptrollerAddress(network); + const comptrollerAddress: string = '0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B'; - const cTokenSymbols: readonly CTokenSym<'mainnet'>[] = mainnetTokens; + const cTokenSymbols: readonly CTokenSym<'mainnet'>[] = mainnetCompoundTokens; const rootsV2: RootsV2<'mainnet'> = mainnetV2Roots.Contracts; const migratorAbi = cometMigratorAbi; @@ -267,65 +122,9 @@ export function mainnetConfig(network: N): NetworkConfig<'m }; } -export function goerliConfig(network: N): NetworkConfig<'goerli'> { - const migratorAddress: string = getMigratorAddress(network); - const comptrollerAddress: string = getComptrollerAddress(network); - const cTokenSymbols: readonly CTokenSym<'goerli'>[] = goerliTokens; - - const rootsV2: RootsV2<'goerli'> = goerliV2Roots.Contracts; - const migratorAbi = cometMigratorAbi; - const rootsV3: RootsV3<'goerli'> = goerliV3Roots; - const cTokens: CToken<'goerli'>[] = cTokenSymbols.map(symbol => { - const { address, decimals, name } = goerliV2Roots.cTokens[symbol] as { - address: string; - decimals: number; - name: string; - underlying: string; - }; - const abi = goerliV2Abi[symbol] as JsonFragment[]; - - const underlyingSymbol = symbol.slice(1); - const underlying = - symbol === 'cETH' - ? { - address: '0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e', // THIS IS WETH ADDRESS - decimals: 18, - name: 'Ether', - symbol: 'ETH' - } - : ((goerliV2Roots.Tokens as any)[underlyingSymbol] as { - address: string; - decimals: number; - name: string; - symbol: string; - }); - - return { - abi, - address, - decimals, - name, - symbol, - underlying - }; - }); - - return { - network, - comptrollerAddress, - migratorAddress, - migratorAbi, - cTokens, - rootsV2, - rootsV3 - }; -} - -export function getNetworkConfig(network: N): NetworkConfig { +export function getCompoundNetworkConfig(network: N): CompoundNetworkConfig { if (isMainnet(network)) { - return mainnetConfig(network) as NetworkConfig; - } else if (isGoerli(network)) { - return goerliConfig(network) as NetworkConfig; + return compoundMainnetConfig(network) as CompoundNetworkConfig; } return null as never; } @@ -348,10 +147,10 @@ export function aaveMainnetConfig(network: N): AaveNetworkC }; } -export function getAaveNetworkConfig(network: N): AaveNetworkConfig | null { +export function getAaveNetworkConfig(network: N): AaveNetworkConfig { if (isMainnet(network)) { return aaveMainnetConfig(network) as AaveNetworkConfig; } - return null; + return null as never; } diff --git a/web/components/AaveBorrowInputView.tsx b/web/components/AaveBorrowInputView.tsx deleted file mode 100644 index 55093d3..0000000 --- a/web/components/AaveBorrowInputView.tsx +++ /dev/null @@ -1,152 +0,0 @@ -import { BaseAssetWithAccountState } from '@compound-finance/comet-extension/dist/CometState'; - -import { formatTokenBalance, maybeBigIntFromString, PRICE_PRECISION } from '../helpers/numbers'; - -import { ATokenState, StateType, SwapRouteState } from '../types'; - -import { notEnoughLiquidityError, InputViewError } from './ErrorViews'; -import { ArrowRight } from './Icons'; -import SwapDropdown from './SwapDropdown'; - -type AaveBorrowInputViewProps = { - baseAsset: BaseAssetWithAccountState; - borrowType: 'stable' | 'variable'; - tokenState: ATokenState; - onInputChange: (value: string) => void; - onMaxButtonClicked: () => void; -}; - -const AaveBorrowInputView = ({ - baseAsset, - borrowType, - tokenState, - onInputChange, - onMaxButtonClicked -}: AaveBorrowInputViewProps) => { - const [borrowBalance, repayAmountRaw, swapRoute]: [bigint, string, SwapRouteState] = - borrowType === 'stable' - ? [tokenState.borrowBalanceStable, tokenState.repayAmountStable, tokenState.swapRouteStable] - : [tokenState.borrowBalanceVariable, tokenState.repayAmountVariable, tokenState.swapRouteVariable]; - let repayAmount: string; - let repayAmountDollarValue: string; - let errorTitle: string | undefined; - let errorDescription: string | undefined; - - if (repayAmountRaw === 'max') { - repayAmount = formatTokenBalance(tokenState.aToken.decimals, borrowBalance, false); - repayAmountDollarValue = formatTokenBalance( - tokenState.aToken.decimals + PRICE_PRECISION, - borrowBalance * tokenState.price, - false, - true - ); - - if ( - (tokenState.aToken.symbol === baseAsset.symbol && borrowBalance > baseAsset.balanceOfComet) || - (swapRoute !== undefined && - swapRoute[0] === StateType.Hydrated && - swapRoute[1].tokenIn.amount > baseAsset.balanceOfComet) - ) { - [errorTitle, errorDescription] = notEnoughLiquidityError(baseAsset); - } - } else { - const maybeRepayAmount = maybeBigIntFromString(repayAmountRaw, tokenState.aToken.decimals); - repayAmount = repayAmountRaw; - - if (maybeRepayAmount === undefined) { - repayAmountDollarValue = '$0.00'; - } else { - repayAmountDollarValue = formatTokenBalance( - tokenState.aToken.decimals + PRICE_PRECISION, - maybeRepayAmount * tokenState.price, - false, - true - ); - - if (maybeRepayAmount > borrowBalance) { - errorTitle = 'Amount Exceeds Borrow Balance.'; - errorDescription = `Value must be less than or equal to ${formatTokenBalance( - tokenState.aToken.decimals, - borrowBalance, - false - )}`; - } else if ( - (tokenState.aToken.symbol === baseAsset.symbol && maybeRepayAmount > baseAsset.balanceOfComet) || - (swapRoute !== undefined && - swapRoute[0] === StateType.Hydrated && - swapRoute[1].tokenIn.amount > baseAsset.balanceOfComet) - ) { - [errorTitle, errorDescription] = notEnoughLiquidityError(baseAsset); - } - } - } - - return ( -
-
-
-
-
- - {tokenState.aToken.symbol !== baseAsset.symbol && ( - <> - -
- - - )} -
-
- { - onInputChange(e.target.value); - }} - type="text" - inputMode="decimal" - /> - {repayAmount === '' && ( -
- 0.0000 -
- )} -
-

- {repayAmountDollarValue} -

-
-
- -

- Aave V2 balance:{' '} - {formatTokenBalance(tokenState.aToken.decimals, borrowBalance, false)} -

-

- {formatTokenBalance( - tokenState.aToken.decimals + PRICE_PRECISION, - borrowBalance * tokenState.price, - false, - true - )} -

-
-
- { - onInputChange(repayAmount); - }} - /> - {!!errorTitle && } -
- ); -}; - -export default AaveBorrowInputView; diff --git a/web/helpers/numbers.ts b/web/helpers/numbers.ts index ae16d91..c0ad881 100644 --- a/web/helpers/numbers.ts +++ b/web/helpers/numbers.ts @@ -82,8 +82,7 @@ export const formatRateFactor = ( }; export const getRiskLevelAndPercentage = (numerator: bigint, denominator: bigint): [MeterRiskLevel, number, string] => { - const percentage = - denominator === 0n ? 0 : Math.round(Number((numerator * 10_000n) / denominator) / 100); + const percentage = denominator === 0n ? 0 : Math.round(Number((numerator * 10_000n) / denominator) / 100); let riskLevel: MeterRiskLevel; if (percentage > 80) { diff --git a/web/helpers/utils.ts b/web/helpers/utils.ts index 7859a8d..3a54e65 100644 --- a/web/helpers/utils.ts +++ b/web/helpers/utils.ts @@ -1,4 +1,85 @@ -import { MigrationSource, SwapInfo } from '../types'; +import { BaseAssetWithAccountState, ProtocolAndAccountState } from '@compound-finance/comet-extension/dist/CometState'; +import { Contract } from '@ethersproject/contracts'; +import { TransactionResponse } from '@ethersproject/providers'; +import { Protocol } from '@uniswap/router-sdk'; +import { CurrencyAmount, Percent, Token, TradeType } from '@uniswap/sdk-core'; +import { AlphaRouter, SwapType, V3Route } from '@uniswap/smart-order-router'; +import { encodeRouteToPath } from '@uniswap/v3-sdk'; + +import { MigrateBorrowTokenState, MigrateCollateralTokenState, MigrationSource, StateType, SwapInfo } from '../types'; + +import { + BASE_FACTOR, + amountToWei, + getRiskLevelAndPercentage, + formatTokenBalance, + maybeBigIntFromString, + parseNumber, + MAX_UINT256, + PRICE_PRECISION, + SLIPPAGE_TOLERANCE, + FACTOR_PRECISION, + MeterRiskLevel +} from './numbers'; + +export const mainnetCompoundTokens = [ + 'cZRX', + 'cWBTC', + 'cWBTC2', + 'cUSDT', + 'cUSDC', + 'cETH', + 'cREP', + 'cBAT', + 'cCOMP', + 'cLINK', + 'cUNI', + 'cDAI', + 'cTUSD', + 'cSUSHI', + 'cAAVE', + 'cYFI', + 'cMKR', + 'cUSDP' +] as const; + +export const mainnetAaveTokens = [ + 'aUSDT', + 'aWBTC', + 'aWETH', + 'aYFI', + 'aZRX', + 'aUNI', + 'aAAVE', + 'aBAT', + 'aBUSD', + 'aDAI', + 'aENJ', + 'aKNC', + 'aLINK', + 'aMANA', + 'aMKR', + 'aREN', + 'aSNX', + 'aSUSD', + 'aTUSD', + 'aUSDC', + 'aCRV', + 'aGUSD', + 'aBAL', + 'aXSUSHI', + 'aRENFIL', + 'aRAI', + 'aAMPL', + 'aUSDP', + 'aDPI', + 'aFRAX', + 'aFEI', + 'aENS', + 'aSTETH' +] as const; + +export const stableCoins = ['USDC', 'USDT', 'DAI', 'BUSD', 'SUSD', 'TUSD', 'GUSD', 'USDP', 'RAI'] as const; export function getDocument(f: (document: Document) => void) { if (document.readyState !== 'loading') { @@ -26,3 +107,529 @@ export function migrationSourceToDisplayString(migrationSource: MigrationSource) return 'Compound V2'; } } + +type DataToFormatArgs = { + borrowTokens: MigrateBorrowTokenState[]; + collateralTokens: MigrateCollateralTokenState[]; + cometData: ProtocolAndAccountState; +}; + +type FormattedMigratorData = { + displayV2BorrowValue: string; + displayV2CollateralValue: string; + displayV2UnsupportedBorrowValue: string; + displayV2UnsupportedCollateralValue: string; + displayV2BorrowCapacity: string; + displayV2AvailableToBorrow: string; + displayV3BorrowValue: string; + displayV3CollateralValue: string; + displayV3BorrowCapacity: string; + displayV3AvailableToBorrow: string; + hasMigratePosition: boolean; + v2BorrowCapacity: bigint; + v2BorrowValue: bigint; + v2RiskLevel: MeterRiskLevel; + v2RiskPercentage: number; + v2RiskPercentageFill: string; + v2ToV3MigrateBorrowValue: bigint; + v2UnsupportedBorrowValue: bigint; + v2UnsupportedCollateralValue: bigint; + v3BorrowCapacityValue: bigint; + v3BorrowValue: bigint; + v3RiskLevel: MeterRiskLevel; + v3RiskPercentage: number; + v3RiskPercentageFill: string; + displayV3LiquidationPoint: string; +}; + +export function getFormattedDisplayData({ + borrowTokens, + collateralTokens, + cometData +}: DataToFormatArgs): FormattedMigratorData { + const v2BorrowValue = borrowTokens.reduce((acc, { borrowBalance, underlying, price, repayAmount }) => { + const maybeRepayAmount = + repayAmount === 'max' ? borrowBalance : maybeBigIntFromString(repayAmount, underlying.decimals); + const repayAmountBigInt = + maybeRepayAmount === undefined ? 0n : maybeRepayAmount > borrowBalance ? borrowBalance : maybeRepayAmount; + return acc + ((borrowBalance - repayAmountBigInt) * price) / BigInt(10 ** underlying.decimals); + }, BigInt(0)); + const displayV2BorrowValue = formatTokenBalance(PRICE_PRECISION, v2BorrowValue, false, true); + + const v2CollateralValue = collateralTokens.reduce((acc, { balanceUnderlying, underlying, price, transfer }) => { + const maybeTransfer = transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); + const transferBigInt = + maybeTransfer === undefined ? 0n : maybeTransfer > balanceUnderlying ? balanceUnderlying : maybeTransfer; + return acc + ((balanceUnderlying - transferBigInt) * price) / BigInt(10 ** underlying.decimals); + }, BigInt(0)); + const displayV2CollateralValue = formatTokenBalance(PRICE_PRECISION, v2CollateralValue, false, true); + + const v2UnsupportedBorrowValue = borrowTokens.reduce((acc, { borrowBalance, underlying, price }) => { + const unsupported = borrowBalance > 0n && !stableCoins.find(coin => coin === underlying.symbol); + const balance = unsupported ? borrowBalance : 0n; + return acc + (balance * price) / BigInt(10 ** underlying.decimals); + }, BigInt(0)); + const displayV2UnsupportedBorrowValue = formatTokenBalance(PRICE_PRECISION, v2UnsupportedBorrowValue, false, true); + const v2UnsupportedCollateralValue = collateralTokens.reduce((acc, { balanceUnderlying, underlying, price }) => { + const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.symbol === underlying.symbol); + const balance = + v3CollateralAsset === undefined && underlying.symbol !== cometData.baseAsset.symbol ? balanceUnderlying : 0n; + return acc + (balance * price) / BigInt(10 ** underlying.decimals); + }, BigInt(0)); + const displayV2UnsupportedCollateralValue = formatTokenBalance( + PRICE_PRECISION, + v2UnsupportedCollateralValue, + false, + true + ); + + const v2BorrowCapacity = collateralTokens.reduce( + (acc, { balanceUnderlying, collateralFactor, price, transfer, underlying }) => { + const maybeTransfer = + transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); + const transferBigInt = + maybeTransfer === undefined ? 0n : maybeTransfer > balanceUnderlying ? balanceUnderlying : maybeTransfer; + const dollarValue = ((balanceUnderlying - transferBigInt) * price) / BigInt(10 ** underlying.decimals); + const capacity = (dollarValue * collateralFactor) / BigInt(10 ** FACTOR_PRECISION); + return acc + capacity; + }, + BigInt(0) + ); + const displayV2BorrowCapacity = formatTokenBalance(PRICE_PRECISION, v2BorrowCapacity, false, true); + + const v2AvailableToBorrow = v2BorrowCapacity - v2BorrowValue; + const displayV2AvailableToBorrow = formatTokenBalance(PRICE_PRECISION, v2AvailableToBorrow, false, true); + + const v2ToV3MigrateBorrowValue = borrowTokens.reduce((acc, { borrowBalance, underlying, price, repayAmount }) => { + const maybeRepayAmount = + repayAmount === 'max' ? borrowBalance : maybeBigIntFromString(repayAmount, underlying.decimals); + const repayAmountBigInt = + maybeRepayAmount === undefined ? 0n : maybeRepayAmount > borrowBalance ? borrowBalance : maybeRepayAmount; + return acc + (repayAmountBigInt * price) / BigInt(10 ** underlying.decimals); + }, BigInt(0)); + const existingBorrowBalance = cometData.baseAsset.balance < 0n ? -cometData.baseAsset.balance : 0n; + const existingBorrowValue: bigint = + (existingBorrowBalance * cometData.baseAsset.price) / BigInt(10 ** cometData.baseAsset.decimals); + const baseAssetTransferValue = collateralTokens.reduce((acc, { balanceUnderlying, underlying, price, transfer }) => { + if (underlying.symbol === cometData.baseAsset.symbol) { + const maybeTransfer = + transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); + const transferBigInt = + maybeTransfer === undefined ? 0n : maybeTransfer > balanceUnderlying ? balanceUnderlying : maybeTransfer; + return acc + (transferBigInt * price) / BigInt(10 ** underlying.decimals); + } + return acc; + }, BigInt(0)); + const v3BorrowValue = existingBorrowValue + v2ToV3MigrateBorrowValue - baseAssetTransferValue; + + const displayV3BorrowValue = formatTokenBalance(PRICE_PRECISION, v3BorrowValue, false, true); + + const v2ToV3MigrateCollateralValue = collateralTokens.reduce( + (acc, { balanceUnderlying, underlying, price, transfer }) => { + const maybeTransfer = + transfer === 'max' ? balanceUnderlying : maybeBigIntFromString(transfer, underlying.decimals); + const transferBigInt = + maybeTransfer === undefined || underlying.symbol === cometData.baseAsset.symbol + ? 0n + : maybeTransfer > balanceUnderlying + ? balanceUnderlying + : maybeTransfer; + return acc + (transferBigInt * price) / BigInt(10 ** underlying.decimals); + }, + BigInt(0) + ); + const v3CollateralValuePreMigrate = cometData.collateralAssets.reduce((acc, { balance, decimals, price }) => { + return acc + (balance * price) / BigInt(10 ** decimals); + }, BigInt(0)); + + const v3CollateralValue = v2ToV3MigrateCollateralValue + v3CollateralValuePreMigrate; + const displayV3CollateralValue = formatTokenBalance(PRICE_PRECISION, v3CollateralValue, false, true); + + const v3BorrowCapacityValue = cometData.collateralAssets.reduce( + (acc, { balance, collateralFactor, decimals, price, symbol }) => { + const filteredTokens = collateralTokens.filter(tokenState => tokenState.underlying.symbol === symbol); + const transfer = filteredTokens.reduce((acc, tokenState) => { + if (tokenState.transfer === 'max') { + return acc + tokenState.balanceUnderlying; + } else { + const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.underlying.decimals); + return maybeTransfer === undefined + ? acc + : maybeTransfer > tokenState.balanceUnderlying + ? acc + tokenState.balanceUnderlying + : acc + maybeTransfer; + } + }, 0n); + + const dollarValue = ((balance + transfer) * price) / BigInt(10 ** decimals); + const capacity = (dollarValue * collateralFactor) / BigInt(10 ** FACTOR_PRECISION); + + return acc + capacity; + }, + BigInt(0) + ); + const displayV3BorrowCapacity = formatTokenBalance(PRICE_PRECISION, v3BorrowCapacityValue, false, true); + + const v3LiquidationCapacityValue = cometData.collateralAssets.reduce( + (acc, { balance, liquidateCollateralFactor, decimals, price, symbol }) => { + const filteredTokens = collateralTokens.filter(tokenState => tokenState.underlying.symbol === symbol); + const transfer = filteredTokens.reduce((acc, tokenState) => { + if (tokenState.transfer === 'max') { + return acc + tokenState.balanceUnderlying; + } else { + const maybeTransfer = maybeBigIntFromString(tokenState.transfer, tokenState.underlying.decimals); + return maybeTransfer === undefined + ? acc + : maybeTransfer > tokenState.balanceUnderlying + ? acc + tokenState.balanceUnderlying + : acc + maybeTransfer; + } + }, 0n); + + const dollarValue = ((balance + transfer) * price) / BigInt(10 ** decimals); + const capacity = (dollarValue * liquidateCollateralFactor) / BigInt(10 ** FACTOR_PRECISION); + return acc + capacity; + }, + BigInt(0) + ); + + const v3AvailableToBorrow = v3BorrowCapacityValue - v3BorrowValue; + const displayV3AvailableToBorrow = formatTokenBalance(PRICE_PRECISION, v3AvailableToBorrow, false, true); + + const hasMigratePosition = v2ToV3MigrateBorrowValue > 0n || v2ToV3MigrateCollateralValue > 0n; + + const [v2RiskLevel, v2RiskPercentage, v2RiskPercentageFill] = getRiskLevelAndPercentage( + v2BorrowValue, + v2BorrowCapacity + ); + const [v3RiskLevel, v3RiskPercentage, v3RiskPercentageFill] = getRiskLevelAndPercentage( + v3BorrowValue, + v3LiquidationCapacityValue + ); + const v3LiquidationPoint = (v3CollateralValue * BigInt(Math.min(100, v3RiskPercentage))) / 100n; + const displayV3LiquidationPoint = formatTokenBalance(PRICE_PRECISION, v3LiquidationPoint, false, true); + + return { + displayV2BorrowValue, + displayV2CollateralValue, + displayV2UnsupportedBorrowValue, + displayV2UnsupportedCollateralValue, + displayV2BorrowCapacity, + displayV2AvailableToBorrow, + displayV3BorrowValue, + displayV3CollateralValue, + displayV3BorrowCapacity, + displayV3AvailableToBorrow, + hasMigratePosition, + v2BorrowCapacity, + v2BorrowValue, + v2RiskLevel, + v2RiskPercentage, + v2RiskPercentageFill, + v2ToV3MigrateBorrowValue, + v2UnsupportedBorrowValue, + v2UnsupportedCollateralValue, + v3BorrowCapacityValue, + v3BorrowValue, + v3RiskLevel, + v3RiskPercentage, + v3RiskPercentageFill, + displayV3LiquidationPoint + }; +} + +export async function getRoute( + networkId: number, + migrator: string, + baseAsset: BaseAssetWithAccountState, + tokenState: MigrateBorrowTokenState, + uniswapRouter: AlphaRouter, + outputAmount: bigint +): Promise { + const BASE_ASSET = new Token(networkId, baseAsset.address, baseAsset.decimals, baseAsset.symbol, baseAsset.name); + const token = new Token( + networkId, + tokenState.underlying.address, + tokenState.underlying.decimals, + tokenState.underlying.symbol, + tokenState.underlying.symbol + ); + const amount = CurrencyAmount.fromRawAmount(token, outputAmount.toString()); + const route = await uniswapRouter.route( + amount, + BASE_ASSET, + TradeType.EXACT_OUTPUT, + { + slippageTolerance: new Percent(SLIPPAGE_TOLERANCE.toString(), FACTOR_PRECISION.toString()), + type: SwapType.SWAP_ROUTER_02, + recipient: migrator, + deadline: Math.floor(Date.now() / 1000 + 1800) + }, + { + protocols: [Protocol.V3], + maxSplits: 1 // This only makes one path + } + ); + if (route !== null) { + const swapInfo: SwapInfo = { + tokenIn: { + symbol: baseAsset.symbol, + decimals: baseAsset.decimals, + price: baseAsset.price, + amount: BigInt(Number(route.quote.toFixed(baseAsset.decimals)) * 10 ** baseAsset.decimals) + }, + tokenOut: { + symbol: tokenState.underlying.symbol, + decimals: tokenState.underlying.decimals, + price: tokenState.price, + amount: outputAmount + }, + networkFee: `$${route.estimatedGasUsedUSD.toFixed(2)}`, + path: encodeRouteToPath(route.route[0].route as V3Route, true) + }; + return swapInfo; + } else { + return null; + } +} + +const ATokenKey = 'aToken' as const; +const ADebtTokenKey = 'aDebtToken' as const; +const CTokenKey = 'cToken' as const; + +type CompoundBorrow = { + cToken: string; + amount: bigint; +}; + +type CompoundCollateral = { + [CTokenKey]: string; + amount: bigint; +}; + +type Swap = { + path: string; + amountInMaximum: bigint; +}; + +type AaveBorrow = { + [ADebtTokenKey]: string; + amount: bigint; +}; + +type AaveCollateral = { + [ATokenKey]: string; + amount: bigint; +}; + +type Borrow = AaveBorrow | CompoundBorrow; +type Collateral = AaveCollateral | CompoundCollateral; + +type ValidateFormArgs = { + borrowTokens: MigrateBorrowTokenState[]; + collateralTokens: MigrateCollateralTokenState[]; + cometData: ProtocolAndAccountState; + migratorEnabled: boolean; + migrationSource: MigrationSource; + stateType: StateType; + v2BorrowCapacity: bigint; + v2BorrowValue: bigint; + v2ToV3MigrateBorrowValue: bigint; + v3BorrowCapacityValue: bigint; + v3BorrowValue: bigint; +}; + +type MigrateParamas = [{ collateral: Collateral[]; borrows: Borrow[]; swaps: Swap[] }, bigint] | string | undefined; + +export function validateForm({ + borrowTokens, + collateralTokens, + cometData, + migratorEnabled, + migrationSource, + stateType, + v2BorrowCapacity, + v2BorrowValue, + v2ToV3MigrateBorrowValue, + v3BorrowCapacityValue, + v3BorrowValue +}: ValidateFormArgs): MigrateParamas { + if (stateType === StateType.Loading || !migratorEnabled) { + return undefined; + } + + const collateral: Collateral[] = []; + for (let { address, balance, balanceUnderlying, underlying, transfer, exchangeRate } of collateralTokens) { + const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === underlying.symbol); + const isBaseAsset = underlying.symbol === cometData.baseAsset.symbol; + const collateralKey = migrationSource === MigrationSource.AaveV2 ? ATokenKey : CTokenKey; + + if (!collateralAsset && !isBaseAsset) { + continue; + } + + if (transfer === 'max') { + if ( + !isBaseAsset && + !!collateralAsset && + collateralAsset.totalSupply + balanceUnderlying > collateralAsset.supplyCap + ) { + return undefined; + } + + collateral.push({ + [collateralKey]: address, + amount: MAX_UINT256 + } as Collateral); + } else if (transfer !== '') { + const maybeTransfer = maybeBigIntFromString(transfer, underlying.decimals); + if (maybeTransfer !== undefined && maybeTransfer > balanceUnderlying) { + return undefined; + } else if ( + maybeTransfer !== undefined && + !isBaseAsset && + !!collateralAsset && + collateralAsset.totalSupply + maybeTransfer > collateralAsset.supplyCap + ) { + return undefined; + } + + const transferAmount = parseNumber(transfer, n => + amountToWei( + exchangeRate === undefined ? n : (n * 10 ** FACTOR_PRECISION) / Number(exchangeRate), + underlying.decimals + ) + ); + if (transferAmount === null) { + return undefined; + } else { + if (transferAmount > 0n) { + collateral.push({ + [collateralKey]: address, + amount: transferAmount + } as Collateral); + } + } + } + } + + const borrows: Borrow[] = []; + for (let { address, borrowBalance, underlying, repayAmount } of borrowTokens) { + const borrowKey = migrationSource === MigrationSource.AaveV2 ? ADebtTokenKey : CTokenKey; + if (repayAmount === 'max') { + borrows.push({ + [borrowKey]: address, + amount: MAX_UINT256 + } as Borrow); + } else if (repayAmount !== '') { + const maybeRepayAmount = maybeBigIntFromString(repayAmount, underlying.decimals); + if (maybeRepayAmount !== undefined && maybeRepayAmount > borrowBalance) { + return undefined; + } + + if (maybeRepayAmount === undefined) { + return undefined; + } else { + if (maybeRepayAmount > 0n) { + borrows.push({ + [borrowKey]: address, + amount: maybeRepayAmount + } as Borrow); + } + } + } + } + + const swaps: Swap[] = []; + for (let { borrowBalance, repayAmount, swapRoute, underlying } of borrowTokens) { + const maybeRepayAmount = + repayAmount === 'max' ? borrowBalance : maybeBigIntFromString(repayAmount, underlying.decimals); + + if (maybeRepayAmount !== undefined && maybeRepayAmount > 0n) { + if (underlying.symbol === cometData.baseAsset.symbol) { + swaps.push({ + path: '0x', + amountInMaximum: MAX_UINT256 + }); + } else if (swapRoute !== undefined && swapRoute[0] === StateType.Hydrated) { + swaps.push({ + path: swapRoute[1].path, + amountInMaximum: MAX_UINT256 + }); + } else { + return undefined; + } + } + } + + if (v2BorrowValue > v2BorrowCapacity || v3BorrowValue > v3BorrowCapacityValue) { + return 'Insufficient Collateral'; + } + + if (collateral.length === 0 && borrows.length === 0) { + return; + } + + const oneBaseAssetUnit = BigInt(10 ** cometData.baseAsset.decimals); + const maximumBorrowValue = (v2ToV3MigrateBorrowValue * (BASE_FACTOR + SLIPPAGE_TOLERANCE)) / BASE_FACTOR; // pad borrow value by 1 + SLIPPAGE_TOLERANCE + const flashAmount = (maximumBorrowValue * oneBaseAssetUnit) / cometData.baseAsset.price; + if (flashAmount > cometData.baseAsset.balanceOfComet) { + return `Insufficient ${cometData.baseAsset.symbol} Liquidity`; + } + + return [{ collateral, borrows, swaps }, flashAmount]; +} + +type MigrateArgs = { + migrator: Contract; + migrationSource: MigrationSource; + migrateParams: MigrateParamas; + failureCallback: (error: string) => void; + successCallback: () => void; + trackTransaction: ( + key: string, + responsePromise: Promise, + callback?: () => void + ) => Promise; +}; + +export async function migrate({ + migrator, + migrationSource, + migrateParams, + failureCallback, + successCallback, + trackTransaction +}: MigrateArgs) { + if (migrateParams !== undefined && typeof migrateParams !== 'string') { + const args = + migrationSource === MigrationSource.AaveV2 + ? [[[], [], []], migrateParams[0], migrateParams[1]] + : [migrateParams[0], [[], [], []], migrateParams[1]]; + + try { + await trackTransaction(migratorTrxKey(migrator.address), migrator.migrate(...args), successCallback); + } catch (e) { + if ('code' in (e as any) && (e as any).code === 'UNPREDICTABLE_GAS_LIMIT') { + failureCallback('Migration will fail if sent, e.g. due to collateral factors. Please adjust parameters.'); + } + } + } +} + +type ApproveArgs = { + migratorAddress: string; + token: Contract; + trackTransaction: ( + key: string, + responsePromise: Promise, + callback?: () => void + ) => Promise; +}; + +export async function approve({ migratorAddress, token, trackTransaction }: ApproveArgs) { + await trackTransaction( + tokenApproveTrxKey(token.address, migratorAddress), + token.approve(migratorAddress, MAX_UINT256) + ); +} diff --git a/web/types.ts b/web/types.ts index e354f1c..d47fd09 100644 --- a/web/types.ts +++ b/web/types.ts @@ -1,7 +1,69 @@ import { RPC } from '@compound-finance/comet-extension'; import { TransactionReceipt, JsonRpcProvider } from '@ethersproject/providers'; -import { AToken } from './Network'; +import mainnetV3Roots from '../node_modules/comet/deployments/mainnet/usdc/roots.json'; +import mainnetV2Roots from '../node_modules/compound-config/networks/mainnet.json'; + +import cometMigratorAbi from '../abis/CometMigratorV2'; + +import { mainnetAaveTokens, mainnetCompoundTokens } from './helpers/utils'; + +type ConstTupleItems = Tuple[Exclude>]; + +export const networks = ['mainnet'] as const; +export type Network = ConstTupleItems; +export const mainnet: Network = networks[0]; + +export type ATokenSym = Network extends 'mainnet' ? ConstTupleItems : never; + +export type CTokenSym = Network extends 'mainnet' ? ConstTupleItems : never; + +export type RootsV2 = Network extends 'mainnet' ? typeof mainnetV2Roots.Contracts : never; + +export type RootsV3 = Network extends 'mainnet' ? typeof mainnetV3Roots : never; + +export interface CToken { + address: string; + decimals: number; + name: string; + symbol: CTokenSym; + underlying: { + address: string; + decimals: number; + name: string; + symbol: string; + }; +} + +export interface AToken { + aTokenAddress: string; + aTokenSymbol: ATokenSym; + stableDebtTokenAddress: string; + variableDebtTokenAddress: string; + symbol: string; + address: string; + decimals: number; +} + +export interface CompoundNetworkConfig { + network: Network; + comptrollerAddress: string; + migratorAddress: string; + migratorAbi: typeof cometMigratorAbi; + cTokens: CToken[]; + rootsV2: RootsV2; + rootsV3: RootsV3; +} + +export interface AaveNetworkConfig { + aTokens: AToken[]; + lendingPoolAddressesProviderAddress: string; + lendingPoolAddress: string; + migratorAbi: typeof cometMigratorAbi; + migratorAddress: string; + network: Network; + rootsV3: RootsV3; +} export type Token = { name: string; @@ -65,20 +127,43 @@ export type SwapRouteState = | [StateType.Error, string] | [StateType.Hydrated, SwapInfo]; -export interface ATokenState { - aToken: AToken; +export type MigrateBorrowTokenState = { + address: string; + borrowBalance: bigint; + borrowType?: 'stable' | 'variable'; + decimals: number; + name: string; + price: bigint; + repayAmount: string | 'max'; + swapRoute: SwapRouteState; + symbol: string; + underlying: { + address: string; + decimals: number; + name: string; + symbol: string; + }; +}; + +export type MigrateCollateralTokenState = { + address: string; allowance: bigint; balance: bigint; - borrowBalanceStable: bigint; - borrowBalanceVariable: bigint; + balanceUnderlying: bigint; collateralFactor: bigint; + decimals: number; + exchangeRate?: bigint; + name: string; price: bigint; - repayAmountStable: string | 'max'; - repayAmountVariable: string | 'max'; + symbol: string; transfer: string | 'max'; - swapRouteStable: SwapRouteState; - swapRouteVariable: SwapRouteState; -} + underlying: { + address: string; + decimals: number; + name: string; + symbol: string; + }; +}; export type SwapInfo = { tokenIn: { @@ -96,3 +181,7 @@ export type SwapInfo = { networkFee: string; path: string; }; + +export type MigrationSourceInfoAave = [MigrationSource.AaveV2, AaveNetworkConfig]; +export type MigrationSourceInfoCompound = [MigrationSource.CompoundV2, CompoundNetworkConfig]; +export type MigrationSourceInfo = MigrationSourceInfoAave | MigrationSourceInfoCompound; From 5e0bed69fe5944d2f8ba0e9a655e9ee6af4d8046 Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Tue, 20 Dec 2022 17:10:45 -0500 Subject: [PATCH 02/11] Sleuthing --- package.json | 1 + web/CompoundV2Migrator.tsx | 2 +- web/helpers/Sleuth/CompoundV2Query.sol | 98 ++++++++++++++++++++++++++ yarn.lock | 42 ++++++++++- 4 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 web/helpers/Sleuth/CompoundV2Query.sol diff --git a/package.json b/package.json index a14b806..507cae1 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "@compound-finance/comet-extension": "^0.0.5", + "@compound-finance/sleuth": "^1.0.1-alpha1", "@ethersproject/abi": "^5.6.2", "@ethersproject/bignumber": "^5.4.2", "@ethersproject/contracts": "^5.6.1", diff --git a/web/CompoundV2Migrator.tsx b/web/CompoundV2Migrator.tsx index df07069..478a52a 100644 --- a/web/CompoundV2Migrator.tsx +++ b/web/CompoundV2Migrator.tsx @@ -1,6 +1,7 @@ import '../styles/main.scss'; import { CometState } from '@compound-finance/comet-extension'; +import { Sleuth } from '@compound-finance/sleuth'; import { Contract } from '@ethersproject/contracts'; import { JsonRpcProvider } from '@ethersproject/providers'; import { Contract as MulticallContract, Provider } from 'ethers-multicall'; @@ -27,7 +28,6 @@ import { SwapRouteState } from './types'; - type CompoundV2MigratorProps = AppProps & { account: string; cometState: CometState; diff --git a/web/helpers/Sleuth/CompoundV2Query.sol b/web/helpers/Sleuth/CompoundV2Query.sol new file mode 100644 index 0000000..93161ed --- /dev/null +++ b/web/helpers/Sleuth/CompoundV2Query.sol @@ -0,0 +1,98 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.16; + +interface CToken { + function comptroller() external returns (Comptroller); + + function transfer(address dst, uint amount) external returns (bool); + + function transferFrom(address src, address dst, uint amount) external returns (bool); + + function approve(address spender, uint amount) external returns (bool); + + function allowance(address owner, address spender) external view returns (uint); + + function balanceOf(address owner) external view returns (uint); + + function balanceOfUnderlying(address owner) external returns (uint); + + function borrowBalanceCurrent(address account) external returns (uint); + + function exchangeRateCurrent() external returns (uint); +} + +interface Comptroller { + function markets(address) external view returns (bool, uint); + + function oracle() external view returns (PriceOracle); + + function getAccountLiquidity(address) external view returns (uint, uint, uint); + + function getAssetsIn(address) external view returns (CToken[] memory); + + function claimComp(address) external; + + function compAccrued(address) external view returns (uint); + + function compSpeeds(address) external view returns (uint); + + function compSupplySpeeds(address) external view returns (uint); + + function compBorrowSpeeds(address) external view returns (uint); + + function borrowCaps(address) external view returns (uint); +} + +interface PriceOracle { + function getUnderlyingPrice(CToken cToken) external view returns (uint); +} + +contract CompoundV2Query { + struct CTokenMetadata { + address cToken; + uint allowance; + uint balance; + uint balanceUnderlying; + uint borrowBalance; + uint collateralFactor; + uint exchangeRate; + uint price; + } + + function query( + Comptroller comptroller, + CToken[] calldata cTokens, + address payable account, + address payable spender + ) external returns (CTokenMetadata[] memory) { + PriceOracle priceOracle = comptroller.oracle(); + uint cTokenCount = cTokens.length; + CTokenMetadata[] memory res = new CTokenMetadata[](cTokenCount); + for (uint i = 0; i < cTokenCount; i++) { + res[i] = cTokenMetadata(comptroller, priceOracle, cTokens[i], account, spender); + } + return res; + } + + function cTokenMetadata( + Comptroller comptroller, + PriceOracle priceOracle, + CToken cToken, + address payable account, + address payable spender + ) public returns (CTokenMetadata memory) { + (, uint collateralFactor) = comptroller.markets(address(cToken)); + + return + CTokenMetadata({ + cToken: address(cToken), + allowance: cToken.allowance(account, spender), + balance: cToken.balanceOf(account), + balanceUnderlying: cToken.balanceOfUnderlying(account), + borrowBalance: cToken.borrowBalanceCurrent(account), + collateralFactor: collateralFactor, + exchangeRate: cToken.exchangeRateCurrent(), + price: priceOracle.getUnderlyingPrice(cToken) + }); + } +} diff --git a/yarn.lock b/yarn.lock index c2e02e8..7b2be59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -356,6 +356,16 @@ "@ethersproject/abi" "^5.7.0" "@ethersproject/providers" "^5.7.1" +"@compound-finance/sleuth@^1.0.1-alpha1": + version "1.0.1-alpha1" + resolved "https://registry.yarnpkg.com/@compound-finance/sleuth/-/sleuth-1.0.1-alpha1.tgz#f85a16f7963d982714d0e5ae124ac8e82440c406" + integrity sha512-8fVxgR4ktnCQZKOWNdI7MRH65xRYPwxpcnTMQy6K3qA2kDK0S+27ue68JwmX7NtVn5JlcFdifsbysxcue+5jnQ== + dependencies: + "@ethersproject/contracts" "^5.7.0" + "@ethersproject/providers" "^5.7.2" + optionalDependencies: + solc "^0.8.17" + "@esbuild-plugins/node-globals-polyfill@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.1.1.tgz#a313ab3efbb2c17c8ce376aa216c627c9b40f9d7" @@ -2280,11 +2290,21 @@ combined-stream@^1.0.8: chai-as-promised "^7.1.1" jest-diff "^27.4.2" +command-exists@^1.2.8: + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + commander@2.18.0: version "2.18.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== +commander@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + "compound-config@https://github.com/compound-finance/compound-config.git#0815f079ebe6c7421361b3334f7b8eaab50722b0": version "0.0.0" resolved "https://github.com/compound-finance/compound-config.git#0815f079ebe6c7421361b3334f7b8eaab50722b0" @@ -3086,7 +3106,7 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.14.0: +follow-redirects@^1.12.1, follow-redirects@^1.14.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -4298,6 +4318,11 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== + merge-options@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" @@ -5090,6 +5115,19 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +solc@^0.8.17: + version "0.8.17" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.17.tgz#c748fec6a64bf029ec406aa9b37e75938d1115ae" + integrity sha512-Dtidk2XtTTmkB3IKdyeg6wLYopJnBVxdoykN8oP8VY3PQjN16BScYoUJTXFm2OP7P0hXNAqWiJNmmfuELtLf8g== + dependencies: + command-exists "^1.2.8" + commander "^8.1.0" + follow-redirects "^1.12.1" + js-sha3 "0.8.0" + memorystream "^0.3.1" + semver "^5.5.0" + tmp "0.0.33" + solhint@^3.3.6: version "3.3.7" resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.3.7.tgz#b5da4fedf7a0fee954cb613b6c55a5a2b0063aa7" @@ -5344,7 +5382,7 @@ tiny-warning@^1.0.3: resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tmp@^0.0.33: +tmp@0.0.33, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== From 2e69248f9e428fac8affb2510fc47efc46c09b62 Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Tue, 20 Dec 2022 21:24:38 -0500 Subject: [PATCH 03/11] More sleuthing --- .gitignore | 1 + package.json | 5 +- web/CompoundV2Migrator.tsx | 14 + .../out/CompoundV2Query.sol/CToken.json | 4414 ++++++++++++++++ .../CompoundV2Query.sol/CompoundV2Query.json | 4353 ++++++++++++++++ .../out/CompoundV2Query.sol/Comptroller.json | 4432 +++++++++++++++++ .../out/CompoundV2Query.sol/PriceOracle.json | 4076 +++++++++++++++ yarn.lock | 8 +- 8 files changed, 17297 insertions(+), 6 deletions(-) create mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json create mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json create mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json create mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json diff --git a/.gitignore b/.gitignore index 41676c3..a7c0e09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Compiler files cache/ out/ +!/web/**/out/ # Ignores development broadcast logs !/broadcast diff --git a/package.json b/package.json index 507cae1..41626ab 100644 --- a/package.json +++ b/package.json @@ -14,11 +14,12 @@ "forge:lint": "solhint '{src,script,test}/**/*.sol'", "playground:mainnet": "script/playground.sh mainnet", "playground:v1": "script/playground.sh v1", - "playground:v2": "script/playground.sh v2" + "playground:v2": "script/playground.sh v2", + "sleuth": "forge build --root web/helpers -c Sleuth -o Sleuth/out" }, "dependencies": { "@compound-finance/comet-extension": "^0.0.5", - "@compound-finance/sleuth": "^1.0.1-alpha1", + "@compound-finance/sleuth": "^1.0.1-alpha5", "@ethersproject/abi": "^5.6.2", "@ethersproject/bignumber": "^5.4.2", "@ethersproject/contracts": "^5.6.1", diff --git a/web/CompoundV2Migrator.tsx b/web/CompoundV2Migrator.tsx index 478a52a..3f84366 100644 --- a/web/CompoundV2Migrator.tsx +++ b/web/CompoundV2Migrator.tsx @@ -12,6 +12,7 @@ import Comptroller from '../abis/Comptroller'; import CToken from '../abis/CToken'; import CompoundV2Oracle from '../abis/Oracle'; +import CompoundV2Query from './helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json'; import { multicall } from './helpers/multicall'; import Migrator, { MigratorState } from './Migrator'; @@ -28,6 +29,8 @@ import { SwapRouteState } from './types'; +const QUERY = Sleuth.querySol(CompoundV2Query); + type CompoundV2MigratorProps = AppProps & { account: string; cometState: CometState; @@ -51,6 +54,9 @@ export default function CompoundV2Migrator({ const oracleAddress = await comptroller.oracle(); return new MulticallContract(oracleAddress, CompoundV2Oracle); }, [comptroller]); + + const sleuth = useMemo(() => new Sleuth(web3), [web3]); + return ( ({ migrationSourceInfo={[MigrationSource.CompoundV2, networkConfig]} getMigrateData={async (web3: JsonRpcProvider, [, networkConfig]: MigrationSourceInfo, state: MigratorState) => { const compoundNetworkConfig = networkConfig as CompoundNetworkConfig; + const response = await sleuth.fetch(QUERY, [ + compoundNetworkConfig.comptrollerAddress, + compoundNetworkConfig.cTokens.map(ctoken => ctoken.address), + account, + compoundNetworkConfig.migratorAddress + ]); + console.log('SLEUTHING....', response); + const ethcallProvider = new Provider(web3, getIdByNetwork(compoundNetworkConfig.network)); const comet = new MulticallContract(compoundNetworkConfig.rootsV3.comet, Comet); const comptroller = new MulticallContract(compoundNetworkConfig.comptrollerAddress, Comptroller); diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json new file mode 100644 index 0000000..db79679 --- /dev/null +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json @@ -0,0 +1,4414 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOfUnderlying", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "borrowBalanceCurrent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "comptroller", + "outputs": [ + { + "internalType": "contract Comptroller", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "exchangeRateCurrent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "balanceOfUnderlying(address)": "3af9e669", + "borrowBalanceCurrent(address)": "17bfdfbc", + "comptroller()": "5fe3b567", + "exchangeRateCurrent()": "bd6d894d", + "transfer(address,uint256)": "a9059cbb", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfUnderlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRateCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "balanceOfUnderlying", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "borrowBalanceCurrent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "comptroller", + "outputs": [ + { + "internalType": "contract Comptroller", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "exchangeRateCurrent", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CompoundV2Query.sol": "CToken" + }, + "libraries": {} + }, + "sources": { + "Sleuth/CompoundV2Query.sol": { + "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "urls": [ + "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", + "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CompoundV2Query.sol", + "id": 309, + "exportedSymbols": { + "CToken": [ + 72 + ], + "CompoundV2Query": [ + 308 + ], + "Comptroller": [ + 148 + ], + "PriceOracle": [ + 157 + ] + }, + "nodeType": "SourceUnit", + "src": "39:2941:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 72, + "nodeType": "ContractDefinition", + "src": "65:670:0", + "nodes": [ + { + "id": 7, + "nodeType": "FunctionDefinition", + "src": "86:54:0", + "functionSelector": "5fe3b567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "comptroller", + "nameLocation": "95:11:0", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "106:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7, + "src": "127:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "Comptroller", + "nameLocations": [ + "127:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "127:11:0" + }, + "referencedDeclaration": 148, + "src": "127:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + } + ], + "src": "126:13:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 16, + "nodeType": "FunctionDefinition", + "src": "144:68:0", + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "153:8:0", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "dst", + "nameLocation": "170:3:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "162:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "162:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "amount", + "nameLocation": "180:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "175:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "175:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "161:26:0" + }, + "returnParameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "206:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "206:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "205:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27, + "nodeType": "FunctionDefinition", + "src": "216:85:0", + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "225:12:0", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "src", + "nameLocation": "246:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "238:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "dst", + "nameLocation": "259:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "251:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "amount", + "nameLocation": "269:6:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "264:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "264:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "237:39:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "295:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "294:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 36, + "nodeType": "FunctionDefinition", + "src": "305:71:0", + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "314:7:0", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "spender", + "nameLocation": "330:7:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "322:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "amount", + "nameLocation": "344:6:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "339:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "339:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "321:30:0" + }, + "returnParameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "370:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "369:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "380:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "389:9:0", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "owner", + "nameLocation": "407:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "399:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "399:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "mutability": "mutable", + "name": "spender", + "nameLocation": "422:7:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "414:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "398:32:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "454:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "454:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "453:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 52, + "nodeType": "FunctionDefinition", + "src": "464:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "473:9:0", + "parameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "owner", + "nameLocation": "491:5:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "483:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 46, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "482:15:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "521:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "520:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 59, + "nodeType": "FunctionDefinition", + "src": "531:68:0", + "functionSelector": "3af9e669", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfUnderlying", + "nameLocation": "540:19:0", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "owner", + "nameLocation": "568:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "560:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "560:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "559:15:0" + }, + "returnParameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "593:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "592:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 66, + "nodeType": "FunctionDefinition", + "src": "603:71:0", + "functionSelector": "17bfdfbc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceCurrent", + "nameLocation": "612:20:0", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "account", + "nameLocation": "641:7:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "633:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "632:17:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "668:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "668:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "667:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 71, + "nodeType": "FunctionDefinition", + "src": "678:55:0", + "functionSelector": "bd6d894d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exchangeRateCurrent", + "nameLocation": "687:19:0", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "727:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "727:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "726:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 72 + ], + "name": "CToken", + "nameLocation": "75:6:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 148, + "nodeType": "ContractDefinition", + "src": "737:668:0", + "nodes": [ + { + "id": 81, + "nodeType": "FunctionDefinition", + "src": "763:61:0", + "functionSelector": "8e8f294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "markets", + "nameLocation": "772:7:0", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "780:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "779:9:0" + }, + "returnParameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "812:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 76, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "812:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "818:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "811:12:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 87, + "nodeType": "FunctionDefinition", + "src": "828:54:0", + "functionSelector": "7dc0d1d0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "oracle", + "nameLocation": "837:6:0", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:2:0" + }, + "returnParameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "869:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 84, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 83, + "name": "PriceOracle", + "nameLocations": [ + "869:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "869:11:0" + }, + "referencedDeclaration": 157, + "src": "869:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "868:13:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 98, + "nodeType": "FunctionDefinition", + "src": "886:79:0", + "functionSelector": "5ec88c79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccountLiquidity", + "nameLocation": "895:19:0", + "parameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "915:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "914:9:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "947:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 91, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "947:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "953:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 93, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "953:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "959:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 95, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "959:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "946:18:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 107, + "nodeType": "FunctionDefinition", + "src": "969:70:0", + "functionSelector": "abfceffc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetsIn", + "nameLocation": "978:11:0", + "parameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "990:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 99, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "990:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "989:9:0" + }, + "returnParameters": { + "id": 106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "1022:15:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 103, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 102, + "name": "CToken", + "nameLocations": [ + "1022:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1022:6:0" + }, + "referencedDeclaration": 72, + "src": "1022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 104, + "nodeType": "ArrayTypeName", + "src": "1022:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + } + ], + "src": "1021:17:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 112, + "nodeType": "FunctionDefinition", + "src": "1043:37:0", + "functionSelector": "e9af0292", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimComp", + "nameLocation": "1052:9:0", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1062:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1062:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1061:9:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [], + "src": "1079:0:0" + }, + "scope": 148, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 119, + "nodeType": "FunctionDefinition", + "src": "1084:59:0", + "functionSelector": "cc7ebdc4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compAccrued", + "nameLocation": "1093:11:0", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1105:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1105:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1104:9:0" + }, + "returnParameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1137:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1136:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 126, + "nodeType": "FunctionDefinition", + "src": "1147:58:0", + "functionSelector": "1d7b33d7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSpeeds", + "nameLocation": "1156:10:0", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1167:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1167:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1166:9:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1199:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1199:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1198:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 133, + "nodeType": "FunctionDefinition", + "src": "1209:64:0", + "functionSelector": "6aa875b5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSupplySpeeds", + "nameLocation": "1218:16:0", + "parameters": { + "id": 129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1235:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1235:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1234:9:0" + }, + "returnParameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1267:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1267:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 140, + "nodeType": "FunctionDefinition", + "src": "1277:64:0", + "functionSelector": "f4a433c0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compBorrowSpeeds", + "nameLocation": "1286:16:0", + "parameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1303:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1303:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1302:9:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1335:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1335:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1334:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 147, + "nodeType": "FunctionDefinition", + "src": "1345:58:0", + "functionSelector": "4a584432", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowCaps", + "nameLocation": "1354:10:0", + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1365:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1364:9:0" + }, + "returnParameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1397:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 144, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1396:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comptroller", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 148 + ], + "name": "Comptroller", + "nameLocation": "747:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 157, + "nodeType": "ContractDefinition", + "src": "1407:100:0", + "nodes": [ + { + "id": 156, + "nodeType": "FunctionDefinition", + "src": "1433:72:0", + "functionSelector": "fc57d4df", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUnderlyingPrice", + "nameLocation": "1442:18:0", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1468:6:0", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1461:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 150, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 149, + "name": "CToken", + "nameLocations": [ + "1461:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1461:6:0" + }, + "referencedDeclaration": 72, + "src": "1461:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "src": "1460:15:0" + }, + "returnParameters": { + "id": 155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1499:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 153, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1499:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1498:6:0" + }, + "scope": 157, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "PriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 157 + ], + "name": "PriceOracle", + "nameLocation": "1417:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 308, + "nodeType": "ContractDefinition", + "src": "1509:1470:0", + "nodes": [ + { + "id": 174, + "nodeType": "StructDefinition", + "src": "1538:203:0", + "canonicalName": "CompoundV2Query.CTokenMetadata", + "members": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1574:6:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1566:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 161, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1591:9:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1586:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 160, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1586:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 163, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1611:7:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1606:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 162, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "balanceUnderlying", + "nameLocation": "1629:17:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1624:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "borrowBalance", + "nameLocation": "1657:13:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1652:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "1681:16:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1676:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1676:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "exchangeRate", + "nameLocation": "1708:12:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1703:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 170, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1703:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "price", + "nameLocation": "1731:5:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1726:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1726:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenMetadata", + "nameLocation": "1545:14:0", + "scope": 308, + "visibility": "public" + }, + { + "id": 245, + "nodeType": "FunctionDefinition", + "src": "1745:499:0", + "body": { + "id": 244, + "nodeType": "Block", + "src": "1925:319:0", + "statements": [ + { + "assignments": [ + 194 + ], + "declarations": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1943:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1931:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 193, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 192, + "name": "PriceOracle", + "nameLocations": [ + "1931:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "1931:11:0" + }, + "referencedDeclaration": 157, + "src": "1931:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 198, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 195, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "1957:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1969:6:0", + "memberName": "oracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 87, + "src": "1957:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeString": "function () view external returns (contract PriceOracle)" + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1957:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1931:46:0" + }, + { + "assignments": [ + 200 + ], + "declarations": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "cTokenCount", + "nameLocation": "1988:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1983:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 199, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 203, + "initialValue": { + "expression": { + "id": 201, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2002:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2010:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2002:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1983:33:0" + }, + { + "assignments": [ + 208 + ], + "declarations": [ + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "res", + "nameLocation": "2046:3:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "2022:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 206, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 205, + "name": "CTokenMetadata", + "nameLocations": [ + "2022:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2022:14:0" + }, + "referencedDeclaration": 174, + "src": "2022:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 207, + "nodeType": "ArrayTypeName", + "src": "2022:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 215, + "initialValue": { + "arguments": [ + { + "id": 213, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2073:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "CTokenMetadata", + "nameLocations": [ + "2056:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2056:14:0" + }, + "referencedDeclaration": 174, + "src": "2056:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 211, + "nodeType": "ArrayTypeName", + "src": "2056:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2052:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2022:63:0" + }, + { + "body": { + "id": 240, + "nodeType": "Block", + "src": "2130:94:0", + "statements": [ + { + "expression": { + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 226, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2138:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "id": 228, + "indexExpression": { + "id": 227, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2142:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2138:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 230, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2162:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + { + "id": 231, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "2175:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + { + "baseExpression": { + "id": 232, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2196:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2188:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + { + "id": 235, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2200:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 236, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2209:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 229, + "name": "cTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "2147:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2147:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "src": "2138:79:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "2138:79:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 220, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 221, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2112:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2108:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 241, + "initializationExpression": { + "assignments": [ + 217 + ], + "declarations": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "i", + "nameLocation": "2101:1:0", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2096:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 216, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 219, + "initialValue": { + "hexValue": "30", + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2105:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2096:10:0" + }, + "loopExpression": { + "expression": { + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2125:3:0", + "subExpression": { + "id": 223, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2125:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "2125:3:0" + }, + "nodeType": "ForStatement", + "src": "2091:133:0" + }, + { + "expression": { + "id": 242, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2236:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "functionReturnParameters": 191, + "id": 243, + "nodeType": "Return", + "src": "2229:10:0" + } + ] + }, + "functionSelector": "0637ff4b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "1754:5:0", + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "1777:11:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1765:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 176, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 175, + "name": "Comptroller", + "nameLocations": [ + "1765:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "1765:11:0" + }, + "referencedDeclaration": 148, + "src": "1765:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "cTokens", + "nameLocation": "1812:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1794:25:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 179, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 178, + "name": "CToken", + "nameLocations": [ + "1794:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1794:6:0" + }, + "referencedDeclaration": 72, + "src": "1794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 180, + "nodeType": "ArrayTypeName", + "src": "1794:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "account", + "nameLocation": "1841:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1825:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1825:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1870:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1854:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1854:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "1759:122:0" + }, + "returnParameters": { + "id": 191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1900:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 188, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 187, + "name": "CTokenMetadata", + "nameLocations": [ + "1900:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "1900:14:0" + }, + "referencedDeclaration": 174, + "src": "1900:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 189, + "nodeType": "ArrayTypeName", + "src": "1900:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "src": "1899:25:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 307, + "nodeType": "FunctionDefinition", + "src": "2248:729:0", + "body": { + "id": 306, + "nodeType": "Block", + "src": "2450:527:0", + "statements": [ + { + "assignments": [ + null, + 265 + ], + "declarations": [ + null, + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "2464:16:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2459:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2459:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 273, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 270, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2512:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2504:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2504:7:0", + "typeDescriptions": {} + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2504:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 266, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2484:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2496:7:0", + "memberName": "markets", + "nodeType": "MemberAccess", + "referencedDeclaration": 81, + "src": "2484:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (address) view external returns (bool,uint256)" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2484:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2456:64:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 277, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2573:7:0", + "typeDescriptions": {} + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 282, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2635:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 279, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2609:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2616:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2609:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2609:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 286, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 284, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2662:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2669:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "2662:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2662:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 290, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 288, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2723:19:0", + "memberName": "balanceOfUnderlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 59, + "src": "2716:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2716:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 294, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2804:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 292, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2776:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2783:20:0", + "memberName": "borrowBalanceCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "2776:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2776:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 296, + "name": "collateralFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2840:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 297, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2880:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2887:19:0", + "memberName": "exchangeRateCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 71, + "src": "2880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2880:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 302, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2956:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "expression": { + "id": 300, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "2925:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2937:18:0", + "memberName": "getUnderlyingPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 156, + "src": "2925:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", + "typeString": "function (contract CToken) view external returns (uint256)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2925:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 274, + "name": "CTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "2540:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2565:6:0", + "2598:9:0", + "2653:7:0", + "2697:17:0", + "2761:13:0", + "2822:16:0", + "2866:12:0", + "2918:5:0" + ], + "names": [ + "cToken", + "allowance", + "balance", + "balanceUnderlying", + "borrowBalance", + "collateralFactor", + "exchangeRate", + "price" + ], + "nodeType": "FunctionCall", + "src": "2540:432:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "functionReturnParameters": 263, + "id": 305, + "nodeType": "Return", + "src": "2527:445:0" + } + ] + }, + "functionSelector": "bc3b5005", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cTokenMetadata", + "nameLocation": "2257:14:0", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "2289:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2277:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 247, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 246, + "name": "Comptroller", + "nameLocations": [ + "2277:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "2277:11:0" + }, + "referencedDeclaration": 148, + "src": "2277:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 251, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2318:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2306:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 250, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 249, + "name": "PriceOracle", + "nameLocations": [ + "2306:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "2306:11:0" + }, + "referencedDeclaration": 157, + "src": "2306:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2342:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2335:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 253, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 252, + "name": "CToken", + "nameLocations": [ + "2335:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "2335:6:0" + }, + "referencedDeclaration": 72, + "src": "2335:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "account", + "nameLocation": "2370:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2354:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2354:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2399:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2383:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2383:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2271:139:0" + }, + "returnParameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2427:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + }, + "typeName": { + "id": 261, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 260, + "name": "CTokenMetadata", + "nameLocations": [ + "2427:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2427:14:0" + }, + "referencedDeclaration": 174, + "src": "2427:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2426:23:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CompoundV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 308 + ], + "name": "CompoundV2Query", + "nameLocation": "1518:15:0", + "scope": 309, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json new file mode 100644 index 0000000..414dfd3 --- /dev/null +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json @@ -0,0 +1,4353 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract PriceOracle", + "name": "priceOracle", + "type": "address" + }, + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "name": "cTokenMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "internalType": "struct CompoundV2Query.CTokenMetadata", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract CToken[]", + "name": "cTokens", + "type": "address[]" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "name": "query", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "internalType": "struct CompoundV2Query.CTokenMetadata[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b5061084e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630637ff4b1461003b578063bc3b500514610064575b600080fd5b61004e61004936600461056b565b610084565b60405161005b9190610671565b60405180910390f35b6100776100723660046106c0565b6101bf565b60405161005b9190610723565b60606000866001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610738565b90508460008167ffffffffffffffff8111156101085761010861075c565b60405190808252806020026020018201604052801561014157816020015b61012e610505565b8152602001906001900390816101265790505b50905060005b828110156101b2576101828a858b8b8581811061016657610166610772565b905060200201602081019061017b9190610788565b8a8a6101bf565b82828151811061019457610194610772565b602002602001018190525080806101aa906107a5565b915050610147565b5098975050505050505050565b6101c7610505565b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190881690638e8f294b906024016040805180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906107cc565b60408051610100810182526001600160a01b038981168083529251636eb1769f60e11b8152898216600482015290881660248201529294509250602083019163dd62ed3e90604401602060405180830381865afa158015610299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bd91906107ff565b81526040516370a0823160e01b81526001600160a01b0387811660048301526020909201918816906370a0823190602401602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906107ff565b8152604051633af9e66960e01b81526001600160a01b038781166004830152602090920191881690633af9e669906024016020604051808303816000875af115801561037f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a391906107ff565b81526040516305eff7ef60e21b81526001600160a01b0387811660048301526020909201918816906317bfdfbc906024016020604051808303816000875af11580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041791906107ff565b8152602001828152602001866001600160a01b031663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048691906107ff565b815260405163fc57d4df60e01b81526001600160a01b03888116600483015260209092019189169063fc57d4df90602401602060405180830381865afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f891906107ff565b9052979650505050505050565b60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461056857600080fd5b50565b60008060008060006080868803121561058357600080fd5b853561058e81610553565b9450602086013567ffffffffffffffff808211156105ab57600080fd5b818801915088601f8301126105bf57600080fd5b8135818111156105ce57600080fd5b8960208260051b85010111156105e357600080fd5b60208301965080955050505060408601356105fd81610553565b9150606086013561060d81610553565b809150509295509295909350565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6020808252825182820181905260009190848201906040850190845b818110156106b4576106a083855161061b565b92840192610100929092019160010161068d565b50909695505050505050565b600080600080600060a086880312156106d857600080fd5b85356106e381610553565b945060208601356106f381610553565b9350604086013561070381610553565b9250606086013561071381610553565b9150608086013561060d81610553565b6101008101610732828461061b565b92915050565b60006020828403121561074a57600080fd5b815161075581610553565b9392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561079a57600080fd5b813561075581610553565b6000600182016107c557634e487b7160e01b600052601160045260246000fd5b5060010190565b600080604083850312156107df57600080fd5b825180151581146107ef57600080fd5b6020939093015192949293505050565b60006020828403121561081157600080fd5b505191905056fea264697066735822122009fc22fd8f6355dd50cbac4254b5d2907c50dc4b2d1bc8c8d4cec48783688d0f64736f6c63430008100033", + "sourceMap": "1509:1470:0:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630637ff4b1461003b578063bc3b500514610064575b600080fd5b61004e61004936600461056b565b610084565b60405161005b9190610671565b60405180910390f35b6100776100723660046106c0565b6101bf565b60405161005b9190610723565b60606000866001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610738565b90508460008167ffffffffffffffff8111156101085761010861075c565b60405190808252806020026020018201604052801561014157816020015b61012e610505565b8152602001906001900390816101265790505b50905060005b828110156101b2576101828a858b8b8581811061016657610166610772565b905060200201602081019061017b9190610788565b8a8a6101bf565b82828151811061019457610194610772565b602002602001018190525080806101aa906107a5565b915050610147565b5098975050505050505050565b6101c7610505565b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190881690638e8f294b906024016040805180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906107cc565b60408051610100810182526001600160a01b038981168083529251636eb1769f60e11b8152898216600482015290881660248201529294509250602083019163dd62ed3e90604401602060405180830381865afa158015610299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bd91906107ff565b81526040516370a0823160e01b81526001600160a01b0387811660048301526020909201918816906370a0823190602401602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906107ff565b8152604051633af9e66960e01b81526001600160a01b038781166004830152602090920191881690633af9e669906024016020604051808303816000875af115801561037f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a391906107ff565b81526040516305eff7ef60e21b81526001600160a01b0387811660048301526020909201918816906317bfdfbc906024016020604051808303816000875af11580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041791906107ff565b8152602001828152602001866001600160a01b031663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048691906107ff565b815260405163fc57d4df60e01b81526001600160a01b03888116600483015260209092019189169063fc57d4df90602401602060405180830381865afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f891906107ff565b9052979650505050505050565b60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461056857600080fd5b50565b60008060008060006080868803121561058357600080fd5b853561058e81610553565b9450602086013567ffffffffffffffff808211156105ab57600080fd5b818801915088601f8301126105bf57600080fd5b8135818111156105ce57600080fd5b8960208260051b85010111156105e357600080fd5b60208301965080955050505060408601356105fd81610553565b9150606086013561060d81610553565b809150509295509295909350565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6020808252825182820181905260009190848201906040850190845b818110156106b4576106a083855161061b565b92840192610100929092019160010161068d565b50909695505050505050565b600080600080600060a086880312156106d857600080fd5b85356106e381610553565b945060208601356106f381610553565b9350604086013561070381610553565b9250606086013561071381610553565b9150608086013561060d81610553565b6101008101610732828461061b565b92915050565b60006020828403121561074a57600080fd5b815161075581610553565b9392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561079a57600080fd5b813561075581610553565b6000600182016107c557634e487b7160e01b600052601160045260246000fd5b5060010190565b600080604083850312156107df57600080fd5b825180151581146107ef57600080fd5b6020939093015192949293505050565b60006020828403121561081157600080fd5b505191905056fea264697066735822122009fc22fd8f6355dd50cbac4254b5d2907c50dc4b2d1bc8c8d4cec48783688d0f64736f6c63430008100033", + "sourceMap": "1509:1470:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1745:499;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2248:729;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1745:499::-;1900:23;1931;1957:11;-1:-1:-1;;;;;1957:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1931:46;-1:-1:-1;2002:7:0;1983:16;2002:7;2052:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2022:63;;2096:6;2091:133;2112:11;2108:1;:15;2091:133;;;2147:70;2162:11;2175;2188:7;;2196:1;2188:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2200:7;2209;2147:14;:70::i;:::-;2138:3;2142:1;2138:6;;;;;;;;:::i;:::-;;;;;;:79;;;;2125:3;;;;;:::i;:::-;;;;2091:133;;;-1:-1:-1;2236:3:0;1745:499;-1:-1:-1;;;;;;;;1745:499:0:o;2248:729::-;2427:21;;:::i;:::-;2484:36;;-1:-1:-1;;;2484:36:0;;-1:-1:-1;;;;;4991:32:1;;;2484:36:0;;;4973:51:1;2459:21:0;;2484:19;;;;;;4946:18:1;;2484:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;;;;;;;-1:-1:-1;;;;;2540:432:0;;;;;;2609:34;;-1:-1:-1;;;2609:34:0;;5624:15:1;;;2609:34:0;;;5606::1;5676:15;;;5656:18;;;5649:43;2456:64:0;;-1:-1:-1;2540:432:0;-1:-1:-1;2540:432:0;;;;2609:16;;5541:18:1;;2609:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2662:25;;-1:-1:-1;;;2662:25:0;;-1:-1:-1;;;;;4991:32:1;;;2662:25:0;;;4973:51:1;2540:432:0;;;;;2662:16;;;;;4946:18:1;;2662:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2716:35;;-1:-1:-1;;;2716:35:0;;-1:-1:-1;;;;;4991:32:1;;;2716:35:0;;;4973:51:1;2540:432:0;;;;;2716:26;;;;;4946:18:1;;2716:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2776:36;;-1:-1:-1;;;2776:36:0;;-1:-1:-1;;;;;4991:32:1;;;2776:36:0;;;4973:51:1;2540:432:0;;;;;2776:27;;;;;4946:18:1;;2776:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;;;2840:16;2540:432;;;;2880:6;-1:-1:-1;;;;;2880:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2925:38;;-1:-1:-1;;;2925:38:0;;-1:-1:-1;;;;;4991:32:1;;;2925:38:0;;;4973:51:1;2540:432:0;;;;;2925:30;;;;;4946:18:1;;2925:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2527:445;2248:729;-1:-1:-1;;;;;;;2248:729:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:144:1:-;-1:-1:-1;;;;;102:31:1;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:1120::-;324:6;332;340;348;356;409:3;397:9;388:7;384:23;380:33;377:53;;;426:1;423;416:12;377:53;465:9;452:23;484:44;522:5;484:44;:::i;:::-;547:5;-1:-1:-1;603:2:1;588:18;;575:32;626:18;656:14;;;653:34;;;683:1;680;673:12;653:34;721:6;710:9;706:22;696:32;;766:7;759:4;755:2;751:13;747:27;737:55;;788:1;785;778:12;737:55;828:2;815:16;854:2;846:6;843:14;840:34;;;870:1;867;860:12;840:34;923:7;918:2;908:6;905:1;901:14;897:2;893:23;889:32;886:45;883:65;;;944:1;941;934:12;883:65;975:2;971;967:11;957:21;;997:6;987:16;;;;;1055:2;1044:9;1040:18;1027:32;1068:46;1106:7;1068:46;:::i;:::-;1133:7;-1:-1:-1;1192:2:1;1177:18;;1164:32;1205:46;1164:32;1205:46;:::i;:::-;1270:7;1260:17;;;163:1120;;;;;;;;:::o;1288:517::-;1403:1;1399;1394:3;1390:11;1386:19;1378:5;1372:12;1368:38;1363:3;1356:51;1456:4;1449:5;1445:16;1439:23;1432:4;1427:3;1423:14;1416:47;1512:4;1505:5;1501:16;1495:23;1488:4;1483:3;1479:14;1472:47;1568:4;1561:5;1557:16;1551:23;1544:4;1539:3;1535:14;1528:47;1624:4;1617:5;1613:16;1607:23;1600:4;1595:3;1591:14;1584:47;1680:4;1673:5;1669:16;1663:23;1656:4;1651:3;1647:14;1640:47;1736:4;1729:5;1725:16;1719:23;1712:4;1707:3;1703:14;1696:47;1792:4;1785:5;1781:16;1775:23;1768:4;1763:3;1759:14;1752:47;;;1288:517::o;1810:724::-;2043:2;2095:21;;;2165:13;;2068:18;;;2187:22;;;2014:4;;2043:2;2266:15;;;;2240:2;2225:18;;;2014:4;2309:199;2323:6;2320:1;2317:13;2309:199;;;2372:52;2420:3;2411:6;2405:13;2372:52;:::i;:::-;2483:15;;;;2453:6;2444:16;;;;;2345:1;2338:9;2309:199;;;-1:-1:-1;2525:3:1;;1810:724;-1:-1:-1;;;;;;1810:724:1:o;2539:945::-;2701:6;2709;2717;2725;2733;2786:3;2774:9;2765:7;2761:23;2757:33;2754:53;;;2803:1;2800;2793:12;2754:53;2842:9;2829:23;2861:44;2899:5;2861:44;:::i;:::-;2924:5;-1:-1:-1;2981:2:1;2966:18;;2953:32;2994:46;2953:32;2994:46;:::i;:::-;3059:7;-1:-1:-1;3118:2:1;3103:18;;3090:32;3131:46;3090:32;3131:46;:::i;:::-;3196:7;-1:-1:-1;3255:2:1;3240:18;;3227:32;3268:46;3227:32;3268:46;:::i;:::-;3333:7;-1:-1:-1;3392:3:1;3377:19;;3364:33;3406:46;3364:33;3406:46;:::i;3489:266::-;3685:3;3670:19;;3698:51;3674:9;3731:6;3698:51;:::i;:::-;3489:266;;;;:::o;3760:283::-;3849:6;3902:2;3890:9;3881:7;3877:23;3873:32;3870:52;;;3918:1;3915;3908:12;3870:52;3950:9;3944:16;3969:44;4007:5;3969:44;:::i;:::-;4032:5;3760:283;-1:-1:-1;;;3760:283:1:o;4048:127::-;4109:10;4104:3;4100:20;4097:1;4090:31;4140:4;4137:1;4130:15;4164:4;4161:1;4154:15;4180:127;4241:10;4236:3;4232:20;4229:1;4222:31;4272:4;4269:1;4262:15;4296:4;4293:1;4286:15;4312:273;4384:6;4437:2;4425:9;4416:7;4412:23;4408:32;4405:52;;;4453:1;4450;4443:12;4405:52;4492:9;4479:23;4511:44;4549:5;4511:44;:::i;4590:232::-;4629:3;4650:17;;;4647:140;;4709:10;4704:3;4700:20;4697:1;4690:31;4744:4;4741:1;4734:15;4772:4;4769:1;4762:15;4647:140;-1:-1:-1;4814:1:1;4803:13;;4590:232::o;5035:338::-;5111:6;5119;5172:2;5160:9;5151:7;5147:23;5143:32;5140:52;;;5188:1;5185;5178:12;5140:52;5220:9;5214:16;5273:5;5266:13;5259:21;5252:5;5249:32;5239:60;;5295:1;5292;5285:12;5239:60;5363:2;5348:18;;;;5342:25;5318:5;;5342:25;;-1:-1:-1;;;5035:338:1:o;5703:184::-;5773:6;5826:2;5814:9;5805:7;5801:23;5797:32;5794:52;;;5842:1;5839;5832:12;5794:52;-1:-1:-1;5865:16:1;;5703:184;-1:-1:-1;5703:184:1:o", + "linkReferences": {} + }, + "methodIdentifiers": { + "cTokenMetadata(address,address,address,address,address)": "bc3b5005", + "query(address,address[],address,address)": "0637ff4b" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract CToken[]\",\"name\":\"cTokens\",\"type\":\"address[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract PriceOracle", + "name": "priceOracle", + "type": "address" + }, + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "cTokenMetadata", + "outputs": [ + { + "internalType": "struct CompoundV2Query.CTokenMetadata", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract CToken[]", + "name": "cTokens", + "type": "address[]" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "query", + "outputs": [ + { + "internalType": "struct CompoundV2Query.CTokenMetadata[]", + "name": "", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ] + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CompoundV2Query.sol": "CompoundV2Query" + }, + "libraries": {} + }, + "sources": { + "Sleuth/CompoundV2Query.sol": { + "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "urls": [ + "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", + "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CompoundV2Query.sol", + "id": 309, + "exportedSymbols": { + "CToken": [ + 72 + ], + "CompoundV2Query": [ + 308 + ], + "Comptroller": [ + 148 + ], + "PriceOracle": [ + 157 + ] + }, + "nodeType": "SourceUnit", + "src": "39:2941:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 72, + "nodeType": "ContractDefinition", + "src": "65:670:0", + "nodes": [ + { + "id": 7, + "nodeType": "FunctionDefinition", + "src": "86:54:0", + "functionSelector": "5fe3b567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "comptroller", + "nameLocation": "95:11:0", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "106:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7, + "src": "127:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "Comptroller", + "nameLocations": [ + "127:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "127:11:0" + }, + "referencedDeclaration": 148, + "src": "127:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + } + ], + "src": "126:13:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 16, + "nodeType": "FunctionDefinition", + "src": "144:68:0", + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "153:8:0", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "dst", + "nameLocation": "170:3:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "162:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "162:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "amount", + "nameLocation": "180:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "175:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "175:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "161:26:0" + }, + "returnParameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "206:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "206:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "205:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27, + "nodeType": "FunctionDefinition", + "src": "216:85:0", + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "225:12:0", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "src", + "nameLocation": "246:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "238:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "dst", + "nameLocation": "259:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "251:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "amount", + "nameLocation": "269:6:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "264:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "264:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "237:39:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "295:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "294:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 36, + "nodeType": "FunctionDefinition", + "src": "305:71:0", + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "314:7:0", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "spender", + "nameLocation": "330:7:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "322:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "amount", + "nameLocation": "344:6:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "339:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "339:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "321:30:0" + }, + "returnParameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "370:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "369:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "380:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "389:9:0", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "owner", + "nameLocation": "407:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "399:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "399:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "mutability": "mutable", + "name": "spender", + "nameLocation": "422:7:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "414:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "398:32:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "454:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "454:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "453:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 52, + "nodeType": "FunctionDefinition", + "src": "464:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "473:9:0", + "parameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "owner", + "nameLocation": "491:5:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "483:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 46, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "482:15:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "521:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "520:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 59, + "nodeType": "FunctionDefinition", + "src": "531:68:0", + "functionSelector": "3af9e669", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfUnderlying", + "nameLocation": "540:19:0", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "owner", + "nameLocation": "568:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "560:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "560:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "559:15:0" + }, + "returnParameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "593:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "592:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 66, + "nodeType": "FunctionDefinition", + "src": "603:71:0", + "functionSelector": "17bfdfbc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceCurrent", + "nameLocation": "612:20:0", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "account", + "nameLocation": "641:7:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "633:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "632:17:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "668:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "668:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "667:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 71, + "nodeType": "FunctionDefinition", + "src": "678:55:0", + "functionSelector": "bd6d894d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exchangeRateCurrent", + "nameLocation": "687:19:0", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "727:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "727:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "726:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 72 + ], + "name": "CToken", + "nameLocation": "75:6:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 148, + "nodeType": "ContractDefinition", + "src": "737:668:0", + "nodes": [ + { + "id": 81, + "nodeType": "FunctionDefinition", + "src": "763:61:0", + "functionSelector": "8e8f294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "markets", + "nameLocation": "772:7:0", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "780:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "779:9:0" + }, + "returnParameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "812:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 76, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "812:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "818:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "811:12:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 87, + "nodeType": "FunctionDefinition", + "src": "828:54:0", + "functionSelector": "7dc0d1d0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "oracle", + "nameLocation": "837:6:0", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:2:0" + }, + "returnParameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "869:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 84, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 83, + "name": "PriceOracle", + "nameLocations": [ + "869:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "869:11:0" + }, + "referencedDeclaration": 157, + "src": "869:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "868:13:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 98, + "nodeType": "FunctionDefinition", + "src": "886:79:0", + "functionSelector": "5ec88c79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccountLiquidity", + "nameLocation": "895:19:0", + "parameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "915:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "914:9:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "947:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 91, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "947:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "953:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 93, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "953:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "959:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 95, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "959:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "946:18:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 107, + "nodeType": "FunctionDefinition", + "src": "969:70:0", + "functionSelector": "abfceffc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetsIn", + "nameLocation": "978:11:0", + "parameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "990:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 99, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "990:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "989:9:0" + }, + "returnParameters": { + "id": 106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "1022:15:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 103, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 102, + "name": "CToken", + "nameLocations": [ + "1022:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1022:6:0" + }, + "referencedDeclaration": 72, + "src": "1022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 104, + "nodeType": "ArrayTypeName", + "src": "1022:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + } + ], + "src": "1021:17:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 112, + "nodeType": "FunctionDefinition", + "src": "1043:37:0", + "functionSelector": "e9af0292", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimComp", + "nameLocation": "1052:9:0", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1062:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1062:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1061:9:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [], + "src": "1079:0:0" + }, + "scope": 148, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 119, + "nodeType": "FunctionDefinition", + "src": "1084:59:0", + "functionSelector": "cc7ebdc4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compAccrued", + "nameLocation": "1093:11:0", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1105:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1105:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1104:9:0" + }, + "returnParameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1137:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1136:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 126, + "nodeType": "FunctionDefinition", + "src": "1147:58:0", + "functionSelector": "1d7b33d7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSpeeds", + "nameLocation": "1156:10:0", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1167:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1167:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1166:9:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1199:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1199:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1198:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 133, + "nodeType": "FunctionDefinition", + "src": "1209:64:0", + "functionSelector": "6aa875b5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSupplySpeeds", + "nameLocation": "1218:16:0", + "parameters": { + "id": 129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1235:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1235:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1234:9:0" + }, + "returnParameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1267:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1267:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 140, + "nodeType": "FunctionDefinition", + "src": "1277:64:0", + "functionSelector": "f4a433c0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compBorrowSpeeds", + "nameLocation": "1286:16:0", + "parameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1303:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1303:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1302:9:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1335:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1335:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1334:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 147, + "nodeType": "FunctionDefinition", + "src": "1345:58:0", + "functionSelector": "4a584432", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowCaps", + "nameLocation": "1354:10:0", + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1365:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1364:9:0" + }, + "returnParameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1397:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 144, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1396:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comptroller", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 148 + ], + "name": "Comptroller", + "nameLocation": "747:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 157, + "nodeType": "ContractDefinition", + "src": "1407:100:0", + "nodes": [ + { + "id": 156, + "nodeType": "FunctionDefinition", + "src": "1433:72:0", + "functionSelector": "fc57d4df", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUnderlyingPrice", + "nameLocation": "1442:18:0", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1468:6:0", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1461:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 150, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 149, + "name": "CToken", + "nameLocations": [ + "1461:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1461:6:0" + }, + "referencedDeclaration": 72, + "src": "1461:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "src": "1460:15:0" + }, + "returnParameters": { + "id": 155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1499:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 153, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1499:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1498:6:0" + }, + "scope": 157, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "PriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 157 + ], + "name": "PriceOracle", + "nameLocation": "1417:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 308, + "nodeType": "ContractDefinition", + "src": "1509:1470:0", + "nodes": [ + { + "id": 174, + "nodeType": "StructDefinition", + "src": "1538:203:0", + "canonicalName": "CompoundV2Query.CTokenMetadata", + "members": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1574:6:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1566:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 161, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1591:9:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1586:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 160, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1586:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 163, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1611:7:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1606:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 162, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "balanceUnderlying", + "nameLocation": "1629:17:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1624:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "borrowBalance", + "nameLocation": "1657:13:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1652:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "1681:16:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1676:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1676:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "exchangeRate", + "nameLocation": "1708:12:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1703:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 170, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1703:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "price", + "nameLocation": "1731:5:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1726:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1726:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenMetadata", + "nameLocation": "1545:14:0", + "scope": 308, + "visibility": "public" + }, + { + "id": 245, + "nodeType": "FunctionDefinition", + "src": "1745:499:0", + "body": { + "id": 244, + "nodeType": "Block", + "src": "1925:319:0", + "statements": [ + { + "assignments": [ + 194 + ], + "declarations": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1943:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1931:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 193, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 192, + "name": "PriceOracle", + "nameLocations": [ + "1931:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "1931:11:0" + }, + "referencedDeclaration": 157, + "src": "1931:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 198, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 195, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "1957:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1969:6:0", + "memberName": "oracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 87, + "src": "1957:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeString": "function () view external returns (contract PriceOracle)" + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1957:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1931:46:0" + }, + { + "assignments": [ + 200 + ], + "declarations": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "cTokenCount", + "nameLocation": "1988:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1983:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 199, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 203, + "initialValue": { + "expression": { + "id": 201, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2002:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2010:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2002:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1983:33:0" + }, + { + "assignments": [ + 208 + ], + "declarations": [ + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "res", + "nameLocation": "2046:3:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "2022:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 206, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 205, + "name": "CTokenMetadata", + "nameLocations": [ + "2022:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2022:14:0" + }, + "referencedDeclaration": 174, + "src": "2022:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 207, + "nodeType": "ArrayTypeName", + "src": "2022:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 215, + "initialValue": { + "arguments": [ + { + "id": 213, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2073:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "CTokenMetadata", + "nameLocations": [ + "2056:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2056:14:0" + }, + "referencedDeclaration": 174, + "src": "2056:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 211, + "nodeType": "ArrayTypeName", + "src": "2056:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2052:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2022:63:0" + }, + { + "body": { + "id": 240, + "nodeType": "Block", + "src": "2130:94:0", + "statements": [ + { + "expression": { + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 226, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2138:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "id": 228, + "indexExpression": { + "id": 227, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2142:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2138:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 230, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2162:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + { + "id": 231, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "2175:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + { + "baseExpression": { + "id": 232, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2196:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2188:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + { + "id": 235, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2200:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 236, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2209:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 229, + "name": "cTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "2147:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2147:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "src": "2138:79:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "2138:79:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 220, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 221, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2112:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2108:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 241, + "initializationExpression": { + "assignments": [ + 217 + ], + "declarations": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "i", + "nameLocation": "2101:1:0", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2096:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 216, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 219, + "initialValue": { + "hexValue": "30", + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2105:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2096:10:0" + }, + "loopExpression": { + "expression": { + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2125:3:0", + "subExpression": { + "id": 223, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2125:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "2125:3:0" + }, + "nodeType": "ForStatement", + "src": "2091:133:0" + }, + { + "expression": { + "id": 242, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2236:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "functionReturnParameters": 191, + "id": 243, + "nodeType": "Return", + "src": "2229:10:0" + } + ] + }, + "functionSelector": "0637ff4b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "1754:5:0", + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "1777:11:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1765:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 176, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 175, + "name": "Comptroller", + "nameLocations": [ + "1765:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "1765:11:0" + }, + "referencedDeclaration": 148, + "src": "1765:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "cTokens", + "nameLocation": "1812:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1794:25:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 179, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 178, + "name": "CToken", + "nameLocations": [ + "1794:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1794:6:0" + }, + "referencedDeclaration": 72, + "src": "1794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 180, + "nodeType": "ArrayTypeName", + "src": "1794:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "account", + "nameLocation": "1841:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1825:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1825:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1870:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1854:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1854:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "1759:122:0" + }, + "returnParameters": { + "id": 191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1900:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 188, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 187, + "name": "CTokenMetadata", + "nameLocations": [ + "1900:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "1900:14:0" + }, + "referencedDeclaration": 174, + "src": "1900:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 189, + "nodeType": "ArrayTypeName", + "src": "1900:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "src": "1899:25:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 307, + "nodeType": "FunctionDefinition", + "src": "2248:729:0", + "body": { + "id": 306, + "nodeType": "Block", + "src": "2450:527:0", + "statements": [ + { + "assignments": [ + null, + 265 + ], + "declarations": [ + null, + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "2464:16:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2459:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2459:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 273, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 270, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2512:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2504:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2504:7:0", + "typeDescriptions": {} + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2504:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 266, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2484:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2496:7:0", + "memberName": "markets", + "nodeType": "MemberAccess", + "referencedDeclaration": 81, + "src": "2484:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (address) view external returns (bool,uint256)" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2484:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2456:64:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 277, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2573:7:0", + "typeDescriptions": {} + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 282, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2635:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 279, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2609:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2616:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2609:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2609:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 286, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 284, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2662:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2669:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "2662:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2662:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 290, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 288, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2723:19:0", + "memberName": "balanceOfUnderlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 59, + "src": "2716:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2716:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 294, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2804:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 292, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2776:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2783:20:0", + "memberName": "borrowBalanceCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "2776:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2776:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 296, + "name": "collateralFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2840:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 297, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2880:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2887:19:0", + "memberName": "exchangeRateCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 71, + "src": "2880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2880:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 302, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2956:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "expression": { + "id": 300, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "2925:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2937:18:0", + "memberName": "getUnderlyingPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 156, + "src": "2925:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", + "typeString": "function (contract CToken) view external returns (uint256)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2925:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 274, + "name": "CTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "2540:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2565:6:0", + "2598:9:0", + "2653:7:0", + "2697:17:0", + "2761:13:0", + "2822:16:0", + "2866:12:0", + "2918:5:0" + ], + "names": [ + "cToken", + "allowance", + "balance", + "balanceUnderlying", + "borrowBalance", + "collateralFactor", + "exchangeRate", + "price" + ], + "nodeType": "FunctionCall", + "src": "2540:432:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "functionReturnParameters": 263, + "id": 305, + "nodeType": "Return", + "src": "2527:445:0" + } + ] + }, + "functionSelector": "bc3b5005", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cTokenMetadata", + "nameLocation": "2257:14:0", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "2289:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2277:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 247, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 246, + "name": "Comptroller", + "nameLocations": [ + "2277:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "2277:11:0" + }, + "referencedDeclaration": 148, + "src": "2277:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 251, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2318:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2306:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 250, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 249, + "name": "PriceOracle", + "nameLocations": [ + "2306:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "2306:11:0" + }, + "referencedDeclaration": 157, + "src": "2306:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2342:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2335:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 253, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 252, + "name": "CToken", + "nameLocations": [ + "2335:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "2335:6:0" + }, + "referencedDeclaration": 72, + "src": "2335:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "account", + "nameLocation": "2370:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2354:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2354:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2399:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2383:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2383:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2271:139:0" + }, + "returnParameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2427:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + }, + "typeName": { + "id": 261, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 260, + "name": "CTokenMetadata", + "nameLocations": [ + "2427:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2427:14:0" + }, + "referencedDeclaration": 174, + "src": "2427:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2426:23:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CompoundV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 308 + ], + "name": "CompoundV2Query", + "nameLocation": "1518:15:0", + "scope": 309, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json new file mode 100644 index 0000000..1aa3ab0 --- /dev/null +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json @@ -0,0 +1,4432 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "borrowCaps", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "claimComp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "compAccrued", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "compBorrowSpeeds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "compSpeeds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "compSupplySpeeds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getAccountLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "getAssetsIn", + "outputs": [ + { + "internalType": "contract CToken[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "markets", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "oracle", + "outputs": [ + { + "internalType": "contract PriceOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "borrowCaps(address)": "4a584432", + "claimComp(address)": "e9af0292", + "compAccrued(address)": "cc7ebdc4", + "compBorrowSpeeds(address)": "f4a433c0", + "compSpeeds(address)": "1d7b33d7", + "compSupplySpeeds(address)": "6aa875b5", + "getAccountLiquidity(address)": "5ec88c79", + "getAssetsIn(address)": "abfceffc", + "markets(address)": "8e8f294b", + "oracle()": "7dc0d1d0" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimComp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compBorrowSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSupplySpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAccountLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAssetsIn\",\"outputs\":[{\"internalType\":\"contract CToken[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract PriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"Comptroller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "borrowCaps", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "claimComp" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "compAccrued", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "compBorrowSpeeds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "compSpeeds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "compSupplySpeeds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAccountLiquidity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAssetsIn", + "outputs": [ + { + "internalType": "contract CToken[]", + "name": "", + "type": "address[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "markets", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "oracle", + "outputs": [ + { + "internalType": "contract PriceOracle", + "name": "", + "type": "address" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CompoundV2Query.sol": "Comptroller" + }, + "libraries": {} + }, + "sources": { + "Sleuth/CompoundV2Query.sol": { + "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "urls": [ + "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", + "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CompoundV2Query.sol", + "id": 309, + "exportedSymbols": { + "CToken": [ + 72 + ], + "CompoundV2Query": [ + 308 + ], + "Comptroller": [ + 148 + ], + "PriceOracle": [ + 157 + ] + }, + "nodeType": "SourceUnit", + "src": "39:2941:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 72, + "nodeType": "ContractDefinition", + "src": "65:670:0", + "nodes": [ + { + "id": 7, + "nodeType": "FunctionDefinition", + "src": "86:54:0", + "functionSelector": "5fe3b567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "comptroller", + "nameLocation": "95:11:0", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "106:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7, + "src": "127:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "Comptroller", + "nameLocations": [ + "127:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "127:11:0" + }, + "referencedDeclaration": 148, + "src": "127:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + } + ], + "src": "126:13:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 16, + "nodeType": "FunctionDefinition", + "src": "144:68:0", + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "153:8:0", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "dst", + "nameLocation": "170:3:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "162:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "162:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "amount", + "nameLocation": "180:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "175:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "175:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "161:26:0" + }, + "returnParameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "206:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "206:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "205:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27, + "nodeType": "FunctionDefinition", + "src": "216:85:0", + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "225:12:0", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "src", + "nameLocation": "246:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "238:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "dst", + "nameLocation": "259:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "251:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "amount", + "nameLocation": "269:6:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "264:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "264:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "237:39:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "295:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "294:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 36, + "nodeType": "FunctionDefinition", + "src": "305:71:0", + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "314:7:0", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "spender", + "nameLocation": "330:7:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "322:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "amount", + "nameLocation": "344:6:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "339:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "339:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "321:30:0" + }, + "returnParameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "370:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "369:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "380:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "389:9:0", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "owner", + "nameLocation": "407:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "399:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "399:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "mutability": "mutable", + "name": "spender", + "nameLocation": "422:7:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "414:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "398:32:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "454:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "454:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "453:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 52, + "nodeType": "FunctionDefinition", + "src": "464:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "473:9:0", + "parameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "owner", + "nameLocation": "491:5:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "483:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 46, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "482:15:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "521:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "520:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 59, + "nodeType": "FunctionDefinition", + "src": "531:68:0", + "functionSelector": "3af9e669", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfUnderlying", + "nameLocation": "540:19:0", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "owner", + "nameLocation": "568:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "560:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "560:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "559:15:0" + }, + "returnParameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "593:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "592:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 66, + "nodeType": "FunctionDefinition", + "src": "603:71:0", + "functionSelector": "17bfdfbc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceCurrent", + "nameLocation": "612:20:0", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "account", + "nameLocation": "641:7:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "633:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "632:17:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "668:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "668:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "667:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 71, + "nodeType": "FunctionDefinition", + "src": "678:55:0", + "functionSelector": "bd6d894d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exchangeRateCurrent", + "nameLocation": "687:19:0", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "727:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "727:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "726:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 72 + ], + "name": "CToken", + "nameLocation": "75:6:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 148, + "nodeType": "ContractDefinition", + "src": "737:668:0", + "nodes": [ + { + "id": 81, + "nodeType": "FunctionDefinition", + "src": "763:61:0", + "functionSelector": "8e8f294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "markets", + "nameLocation": "772:7:0", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "780:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "779:9:0" + }, + "returnParameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "812:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 76, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "812:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "818:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "811:12:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 87, + "nodeType": "FunctionDefinition", + "src": "828:54:0", + "functionSelector": "7dc0d1d0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "oracle", + "nameLocation": "837:6:0", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:2:0" + }, + "returnParameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "869:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 84, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 83, + "name": "PriceOracle", + "nameLocations": [ + "869:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "869:11:0" + }, + "referencedDeclaration": 157, + "src": "869:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "868:13:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 98, + "nodeType": "FunctionDefinition", + "src": "886:79:0", + "functionSelector": "5ec88c79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccountLiquidity", + "nameLocation": "895:19:0", + "parameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "915:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "914:9:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "947:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 91, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "947:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "953:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 93, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "953:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "959:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 95, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "959:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "946:18:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 107, + "nodeType": "FunctionDefinition", + "src": "969:70:0", + "functionSelector": "abfceffc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetsIn", + "nameLocation": "978:11:0", + "parameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "990:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 99, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "990:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "989:9:0" + }, + "returnParameters": { + "id": 106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "1022:15:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 103, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 102, + "name": "CToken", + "nameLocations": [ + "1022:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1022:6:0" + }, + "referencedDeclaration": 72, + "src": "1022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 104, + "nodeType": "ArrayTypeName", + "src": "1022:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + } + ], + "src": "1021:17:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 112, + "nodeType": "FunctionDefinition", + "src": "1043:37:0", + "functionSelector": "e9af0292", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimComp", + "nameLocation": "1052:9:0", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1062:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1062:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1061:9:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [], + "src": "1079:0:0" + }, + "scope": 148, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 119, + "nodeType": "FunctionDefinition", + "src": "1084:59:0", + "functionSelector": "cc7ebdc4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compAccrued", + "nameLocation": "1093:11:0", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1105:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1105:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1104:9:0" + }, + "returnParameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1137:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1136:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 126, + "nodeType": "FunctionDefinition", + "src": "1147:58:0", + "functionSelector": "1d7b33d7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSpeeds", + "nameLocation": "1156:10:0", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1167:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1167:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1166:9:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1199:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1199:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1198:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 133, + "nodeType": "FunctionDefinition", + "src": "1209:64:0", + "functionSelector": "6aa875b5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSupplySpeeds", + "nameLocation": "1218:16:0", + "parameters": { + "id": 129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1235:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1235:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1234:9:0" + }, + "returnParameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1267:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1267:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 140, + "nodeType": "FunctionDefinition", + "src": "1277:64:0", + "functionSelector": "f4a433c0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compBorrowSpeeds", + "nameLocation": "1286:16:0", + "parameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1303:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1303:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1302:9:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1335:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1335:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1334:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 147, + "nodeType": "FunctionDefinition", + "src": "1345:58:0", + "functionSelector": "4a584432", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowCaps", + "nameLocation": "1354:10:0", + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1365:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1364:9:0" + }, + "returnParameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1397:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 144, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1396:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comptroller", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 148 + ], + "name": "Comptroller", + "nameLocation": "747:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 157, + "nodeType": "ContractDefinition", + "src": "1407:100:0", + "nodes": [ + { + "id": 156, + "nodeType": "FunctionDefinition", + "src": "1433:72:0", + "functionSelector": "fc57d4df", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUnderlyingPrice", + "nameLocation": "1442:18:0", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1468:6:0", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1461:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 150, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 149, + "name": "CToken", + "nameLocations": [ + "1461:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1461:6:0" + }, + "referencedDeclaration": 72, + "src": "1461:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "src": "1460:15:0" + }, + "returnParameters": { + "id": 155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1499:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 153, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1499:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1498:6:0" + }, + "scope": 157, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "PriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 157 + ], + "name": "PriceOracle", + "nameLocation": "1417:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 308, + "nodeType": "ContractDefinition", + "src": "1509:1470:0", + "nodes": [ + { + "id": 174, + "nodeType": "StructDefinition", + "src": "1538:203:0", + "canonicalName": "CompoundV2Query.CTokenMetadata", + "members": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1574:6:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1566:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 161, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1591:9:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1586:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 160, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1586:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 163, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1611:7:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1606:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 162, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "balanceUnderlying", + "nameLocation": "1629:17:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1624:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "borrowBalance", + "nameLocation": "1657:13:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1652:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "1681:16:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1676:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1676:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "exchangeRate", + "nameLocation": "1708:12:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1703:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 170, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1703:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "price", + "nameLocation": "1731:5:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1726:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1726:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenMetadata", + "nameLocation": "1545:14:0", + "scope": 308, + "visibility": "public" + }, + { + "id": 245, + "nodeType": "FunctionDefinition", + "src": "1745:499:0", + "body": { + "id": 244, + "nodeType": "Block", + "src": "1925:319:0", + "statements": [ + { + "assignments": [ + 194 + ], + "declarations": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1943:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1931:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 193, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 192, + "name": "PriceOracle", + "nameLocations": [ + "1931:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "1931:11:0" + }, + "referencedDeclaration": 157, + "src": "1931:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 198, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 195, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "1957:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1969:6:0", + "memberName": "oracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 87, + "src": "1957:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeString": "function () view external returns (contract PriceOracle)" + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1957:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1931:46:0" + }, + { + "assignments": [ + 200 + ], + "declarations": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "cTokenCount", + "nameLocation": "1988:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1983:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 199, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 203, + "initialValue": { + "expression": { + "id": 201, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2002:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2010:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2002:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1983:33:0" + }, + { + "assignments": [ + 208 + ], + "declarations": [ + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "res", + "nameLocation": "2046:3:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "2022:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 206, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 205, + "name": "CTokenMetadata", + "nameLocations": [ + "2022:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2022:14:0" + }, + "referencedDeclaration": 174, + "src": "2022:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 207, + "nodeType": "ArrayTypeName", + "src": "2022:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 215, + "initialValue": { + "arguments": [ + { + "id": 213, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2073:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "CTokenMetadata", + "nameLocations": [ + "2056:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2056:14:0" + }, + "referencedDeclaration": 174, + "src": "2056:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 211, + "nodeType": "ArrayTypeName", + "src": "2056:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2052:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2022:63:0" + }, + { + "body": { + "id": 240, + "nodeType": "Block", + "src": "2130:94:0", + "statements": [ + { + "expression": { + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 226, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2138:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "id": 228, + "indexExpression": { + "id": 227, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2142:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2138:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 230, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2162:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + { + "id": 231, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "2175:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + { + "baseExpression": { + "id": 232, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2196:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2188:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + { + "id": 235, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2200:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 236, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2209:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 229, + "name": "cTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "2147:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2147:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "src": "2138:79:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "2138:79:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 220, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 221, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2112:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2108:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 241, + "initializationExpression": { + "assignments": [ + 217 + ], + "declarations": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "i", + "nameLocation": "2101:1:0", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2096:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 216, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 219, + "initialValue": { + "hexValue": "30", + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2105:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2096:10:0" + }, + "loopExpression": { + "expression": { + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2125:3:0", + "subExpression": { + "id": 223, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2125:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "2125:3:0" + }, + "nodeType": "ForStatement", + "src": "2091:133:0" + }, + { + "expression": { + "id": 242, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2236:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "functionReturnParameters": 191, + "id": 243, + "nodeType": "Return", + "src": "2229:10:0" + } + ] + }, + "functionSelector": "0637ff4b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "1754:5:0", + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "1777:11:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1765:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 176, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 175, + "name": "Comptroller", + "nameLocations": [ + "1765:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "1765:11:0" + }, + "referencedDeclaration": 148, + "src": "1765:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "cTokens", + "nameLocation": "1812:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1794:25:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 179, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 178, + "name": "CToken", + "nameLocations": [ + "1794:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1794:6:0" + }, + "referencedDeclaration": 72, + "src": "1794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 180, + "nodeType": "ArrayTypeName", + "src": "1794:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "account", + "nameLocation": "1841:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1825:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1825:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1870:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1854:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1854:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "1759:122:0" + }, + "returnParameters": { + "id": 191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1900:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 188, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 187, + "name": "CTokenMetadata", + "nameLocations": [ + "1900:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "1900:14:0" + }, + "referencedDeclaration": 174, + "src": "1900:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 189, + "nodeType": "ArrayTypeName", + "src": "1900:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "src": "1899:25:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 307, + "nodeType": "FunctionDefinition", + "src": "2248:729:0", + "body": { + "id": 306, + "nodeType": "Block", + "src": "2450:527:0", + "statements": [ + { + "assignments": [ + null, + 265 + ], + "declarations": [ + null, + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "2464:16:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2459:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2459:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 273, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 270, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2512:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2504:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2504:7:0", + "typeDescriptions": {} + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2504:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 266, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2484:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2496:7:0", + "memberName": "markets", + "nodeType": "MemberAccess", + "referencedDeclaration": 81, + "src": "2484:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (address) view external returns (bool,uint256)" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2484:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2456:64:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 277, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2573:7:0", + "typeDescriptions": {} + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 282, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2635:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 279, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2609:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2616:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2609:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2609:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 286, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 284, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2662:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2669:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "2662:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2662:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 290, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 288, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2723:19:0", + "memberName": "balanceOfUnderlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 59, + "src": "2716:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2716:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 294, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2804:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 292, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2776:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2783:20:0", + "memberName": "borrowBalanceCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "2776:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2776:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 296, + "name": "collateralFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2840:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 297, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2880:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2887:19:0", + "memberName": "exchangeRateCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 71, + "src": "2880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2880:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 302, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2956:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "expression": { + "id": 300, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "2925:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2937:18:0", + "memberName": "getUnderlyingPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 156, + "src": "2925:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", + "typeString": "function (contract CToken) view external returns (uint256)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2925:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 274, + "name": "CTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "2540:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2565:6:0", + "2598:9:0", + "2653:7:0", + "2697:17:0", + "2761:13:0", + "2822:16:0", + "2866:12:0", + "2918:5:0" + ], + "names": [ + "cToken", + "allowance", + "balance", + "balanceUnderlying", + "borrowBalance", + "collateralFactor", + "exchangeRate", + "price" + ], + "nodeType": "FunctionCall", + "src": "2540:432:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "functionReturnParameters": 263, + "id": 305, + "nodeType": "Return", + "src": "2527:445:0" + } + ] + }, + "functionSelector": "bc3b5005", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cTokenMetadata", + "nameLocation": "2257:14:0", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "2289:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2277:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 247, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 246, + "name": "Comptroller", + "nameLocations": [ + "2277:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "2277:11:0" + }, + "referencedDeclaration": 148, + "src": "2277:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 251, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2318:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2306:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 250, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 249, + "name": "PriceOracle", + "nameLocations": [ + "2306:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "2306:11:0" + }, + "referencedDeclaration": 157, + "src": "2306:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2342:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2335:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 253, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 252, + "name": "CToken", + "nameLocations": [ + "2335:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "2335:6:0" + }, + "referencedDeclaration": 72, + "src": "2335:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "account", + "nameLocation": "2370:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2354:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2354:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2399:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2383:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2383:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2271:139:0" + }, + "returnParameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2427:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + }, + "typeName": { + "id": 261, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 260, + "name": "CTokenMetadata", + "nameLocations": [ + "2427:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2427:14:0" + }, + "referencedDeclaration": 174, + "src": "2427:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2426:23:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CompoundV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 308 + ], + "name": "CompoundV2Query", + "nameLocation": "1518:15:0", + "scope": 309, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json new file mode 100644 index 0000000..4745850 --- /dev/null +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json @@ -0,0 +1,4076 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + } + ], + "name": "getUnderlyingPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "getUnderlyingPrice(address)": "fc57d4df" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"PriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getUnderlyingPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CompoundV2Query.sol": "PriceOracle" + }, + "libraries": {} + }, + "sources": { + "Sleuth/CompoundV2Query.sol": { + "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "urls": [ + "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", + "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CompoundV2Query.sol", + "id": 309, + "exportedSymbols": { + "CToken": [ + 72 + ], + "CompoundV2Query": [ + 308 + ], + "Comptroller": [ + 148 + ], + "PriceOracle": [ + 157 + ] + }, + "nodeType": "SourceUnit", + "src": "39:2941:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 72, + "nodeType": "ContractDefinition", + "src": "65:670:0", + "nodes": [ + { + "id": 7, + "nodeType": "FunctionDefinition", + "src": "86:54:0", + "functionSelector": "5fe3b567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "comptroller", + "nameLocation": "95:11:0", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "106:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7, + "src": "127:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "Comptroller", + "nameLocations": [ + "127:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "127:11:0" + }, + "referencedDeclaration": 148, + "src": "127:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + } + ], + "src": "126:13:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 16, + "nodeType": "FunctionDefinition", + "src": "144:68:0", + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "153:8:0", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "dst", + "nameLocation": "170:3:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "162:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "162:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "amount", + "nameLocation": "180:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "175:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "175:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "161:26:0" + }, + "returnParameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "206:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "206:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "205:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27, + "nodeType": "FunctionDefinition", + "src": "216:85:0", + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "225:12:0", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "src", + "nameLocation": "246:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "238:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "dst", + "nameLocation": "259:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "251:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "amount", + "nameLocation": "269:6:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "264:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "264:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "237:39:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "295:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "294:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 36, + "nodeType": "FunctionDefinition", + "src": "305:71:0", + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "314:7:0", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "spender", + "nameLocation": "330:7:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "322:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "amount", + "nameLocation": "344:6:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "339:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "339:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "321:30:0" + }, + "returnParameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "370:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "369:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "380:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "389:9:0", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "owner", + "nameLocation": "407:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "399:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "399:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "mutability": "mutable", + "name": "spender", + "nameLocation": "422:7:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "414:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "398:32:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "454:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "454:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "453:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 52, + "nodeType": "FunctionDefinition", + "src": "464:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "473:9:0", + "parameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "owner", + "nameLocation": "491:5:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "483:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 46, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "482:15:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "521:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "520:6:0" + }, + "scope": 72, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 59, + "nodeType": "FunctionDefinition", + "src": "531:68:0", + "functionSelector": "3af9e669", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfUnderlying", + "nameLocation": "540:19:0", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "owner", + "nameLocation": "568:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "560:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "560:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "559:15:0" + }, + "returnParameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "593:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "592:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 66, + "nodeType": "FunctionDefinition", + "src": "603:71:0", + "functionSelector": "17bfdfbc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceCurrent", + "nameLocation": "612:20:0", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "account", + "nameLocation": "641:7:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "633:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "632:17:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "668:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "668:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "667:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 71, + "nodeType": "FunctionDefinition", + "src": "678:55:0", + "functionSelector": "bd6d894d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exchangeRateCurrent", + "nameLocation": "687:19:0", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "727:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "727:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "726:6:0" + }, + "scope": 72, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 72 + ], + "name": "CToken", + "nameLocation": "75:6:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 148, + "nodeType": "ContractDefinition", + "src": "737:668:0", + "nodes": [ + { + "id": 81, + "nodeType": "FunctionDefinition", + "src": "763:61:0", + "functionSelector": "8e8f294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "markets", + "nameLocation": "772:7:0", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "780:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "779:9:0" + }, + "returnParameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "812:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 76, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "812:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "818:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 78, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "818:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "811:12:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 87, + "nodeType": "FunctionDefinition", + "src": "828:54:0", + "functionSelector": "7dc0d1d0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "oracle", + "nameLocation": "837:6:0", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:2:0" + }, + "returnParameters": { + "id": 86, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 85, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "869:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 84, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 83, + "name": "PriceOracle", + "nameLocations": [ + "869:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "869:11:0" + }, + "referencedDeclaration": 157, + "src": "869:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "868:13:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 98, + "nodeType": "FunctionDefinition", + "src": "886:79:0", + "functionSelector": "5ec88c79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccountLiquidity", + "nameLocation": "895:19:0", + "parameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "915:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "914:9:0" + }, + "returnParameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "947:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 91, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "947:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "953:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 93, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "953:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 98, + "src": "959:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 95, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "959:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "946:18:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 107, + "nodeType": "FunctionDefinition", + "src": "969:70:0", + "functionSelector": "abfceffc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetsIn", + "nameLocation": "978:11:0", + "parameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "990:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 99, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "990:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "989:9:0" + }, + "returnParameters": { + "id": 106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 105, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 107, + "src": "1022:15:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 103, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 102, + "name": "CToken", + "nameLocations": [ + "1022:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1022:6:0" + }, + "referencedDeclaration": 72, + "src": "1022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 104, + "nodeType": "ArrayTypeName", + "src": "1022:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + } + ], + "src": "1021:17:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 112, + "nodeType": "FunctionDefinition", + "src": "1043:37:0", + "functionSelector": "e9af0292", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimComp", + "nameLocation": "1052:9:0", + "parameters": { + "id": 110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 112, + "src": "1062:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 108, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1062:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1061:9:0" + }, + "returnParameters": { + "id": 111, + "nodeType": "ParameterList", + "parameters": [], + "src": "1079:0:0" + }, + "scope": 148, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 119, + "nodeType": "FunctionDefinition", + "src": "1084:59:0", + "functionSelector": "cc7ebdc4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compAccrued", + "nameLocation": "1093:11:0", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1105:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1105:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1104:9:0" + }, + "returnParameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 119, + "src": "1137:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1137:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1136:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 126, + "nodeType": "FunctionDefinition", + "src": "1147:58:0", + "functionSelector": "1d7b33d7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSpeeds", + "nameLocation": "1156:10:0", + "parameters": { + "id": 122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1167:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 120, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1167:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1166:9:0" + }, + "returnParameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 126, + "src": "1199:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1199:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1198:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 133, + "nodeType": "FunctionDefinition", + "src": "1209:64:0", + "functionSelector": "6aa875b5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSupplySpeeds", + "nameLocation": "1218:16:0", + "parameters": { + "id": 129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 128, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1235:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1235:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1234:9:0" + }, + "returnParameters": { + "id": 132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1267:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1267:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1266:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 140, + "nodeType": "FunctionDefinition", + "src": "1277:64:0", + "functionSelector": "f4a433c0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compBorrowSpeeds", + "nameLocation": "1286:16:0", + "parameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 135, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1303:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1303:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1302:9:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 140, + "src": "1335:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1335:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1334:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 147, + "nodeType": "FunctionDefinition", + "src": "1345:58:0", + "functionSelector": "4a584432", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowCaps", + "nameLocation": "1354:10:0", + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1365:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1365:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1364:9:0" + }, + "returnParameters": { + "id": 146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "1397:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 144, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1396:6:0" + }, + "scope": 148, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comptroller", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 148 + ], + "name": "Comptroller", + "nameLocation": "747:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 157, + "nodeType": "ContractDefinition", + "src": "1407:100:0", + "nodes": [ + { + "id": 156, + "nodeType": "FunctionDefinition", + "src": "1433:72:0", + "functionSelector": "fc57d4df", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUnderlyingPrice", + "nameLocation": "1442:18:0", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1468:6:0", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1461:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 150, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 149, + "name": "CToken", + "nameLocations": [ + "1461:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1461:6:0" + }, + "referencedDeclaration": 72, + "src": "1461:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "src": "1460:15:0" + }, + "returnParameters": { + "id": 155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 154, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 156, + "src": "1499:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 153, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1499:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1498:6:0" + }, + "scope": 157, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "PriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 157 + ], + "name": "PriceOracle", + "nameLocation": "1417:11:0", + "scope": 309, + "usedErrors": [] + }, + { + "id": 308, + "nodeType": "ContractDefinition", + "src": "1509:1470:0", + "nodes": [ + { + "id": 174, + "nodeType": "StructDefinition", + "src": "1538:203:0", + "canonicalName": "CompoundV2Query.CTokenMetadata", + "members": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1574:6:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1566:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1566:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 161, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1591:9:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1586:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 160, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1586:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 163, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1611:7:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1606:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 162, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "balanceUnderlying", + "nameLocation": "1629:17:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1624:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 164, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1624:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "borrowBalance", + "nameLocation": "1657:13:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1652:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1652:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "1681:16:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1676:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1676:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "exchangeRate", + "nameLocation": "1708:12:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1703:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 170, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1703:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "price", + "nameLocation": "1731:5:0", + "nodeType": "VariableDeclaration", + "scope": 174, + "src": "1726:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1726:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenMetadata", + "nameLocation": "1545:14:0", + "scope": 308, + "visibility": "public" + }, + { + "id": 245, + "nodeType": "FunctionDefinition", + "src": "1745:499:0", + "body": { + "id": 244, + "nodeType": "Block", + "src": "1925:319:0", + "statements": [ + { + "assignments": [ + 194 + ], + "declarations": [ + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1943:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1931:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 193, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 192, + "name": "PriceOracle", + "nameLocations": [ + "1931:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "1931:11:0" + }, + "referencedDeclaration": 157, + "src": "1931:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 198, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 195, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "1957:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1969:6:0", + "memberName": "oracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 87, + "src": "1957:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeString": "function () view external returns (contract PriceOracle)" + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1957:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1931:46:0" + }, + { + "assignments": [ + 200 + ], + "declarations": [ + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "cTokenCount", + "nameLocation": "1988:11:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "1983:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 199, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 203, + "initialValue": { + "expression": { + "id": 201, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2002:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2010:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2002:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1983:33:0" + }, + { + "assignments": [ + 208 + ], + "declarations": [ + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "res", + "nameLocation": "2046:3:0", + "nodeType": "VariableDeclaration", + "scope": 244, + "src": "2022:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 206, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 205, + "name": "CTokenMetadata", + "nameLocations": [ + "2022:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2022:14:0" + }, + "referencedDeclaration": 174, + "src": "2022:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 207, + "nodeType": "ArrayTypeName", + "src": "2022:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 215, + "initialValue": { + "arguments": [ + { + "id": 213, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2073:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2052:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "CTokenMetadata", + "nameLocations": [ + "2056:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2056:14:0" + }, + "referencedDeclaration": 174, + "src": "2056:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 211, + "nodeType": "ArrayTypeName", + "src": "2056:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2052:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2022:63:0" + }, + { + "body": { + "id": 240, + "nodeType": "Block", + "src": "2130:94:0", + "statements": [ + { + "expression": { + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 226, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2138:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "id": 228, + "indexExpression": { + "id": 227, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2142:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2138:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 230, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2162:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + { + "id": 231, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "2175:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + { + "baseExpression": { + "id": 232, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "2188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[] calldata" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2196:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2188:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + { + "id": 235, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "2200:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 236, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 185, + "src": "2209:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 229, + "name": "cTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "2147:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2147:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "src": "2138:79:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "2138:79:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 220, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2108:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 221, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "2112:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2108:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 241, + "initializationExpression": { + "assignments": [ + 217 + ], + "declarations": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "i", + "nameLocation": "2101:1:0", + "nodeType": "VariableDeclaration", + "scope": 241, + "src": "2096:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 216, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2096:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 219, + "initialValue": { + "hexValue": "30", + "id": 218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2105:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2096:10:0" + }, + "loopExpression": { + "expression": { + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2125:3:0", + "subExpression": { + "id": 223, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "2125:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "2125:3:0" + }, + "nodeType": "ForStatement", + "src": "2091:133:0" + }, + { + "expression": { + "id": 242, + "name": "res", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 208, + "src": "2236:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "functionReturnParameters": 191, + "id": 243, + "nodeType": "Return", + "src": "2229:10:0" + } + ] + }, + "functionSelector": "0637ff4b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "1754:5:0", + "parameters": { + "id": 186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "1777:11:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1765:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 176, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 175, + "name": "Comptroller", + "nameLocations": [ + "1765:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "1765:11:0" + }, + "referencedDeclaration": 148, + "src": "1765:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "cTokens", + "nameLocation": "1812:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1794:25:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 179, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 178, + "name": "CToken", + "nameLocations": [ + "1794:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "1794:6:0" + }, + "referencedDeclaration": 72, + "src": "1794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 180, + "nodeType": "ArrayTypeName", + "src": "1794:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "account", + "nameLocation": "1841:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1825:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1825:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1870:7:0", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1854:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1854:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "1759:122:0" + }, + "returnParameters": { + "id": 191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 245, + "src": "1900:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 188, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 187, + "name": "CTokenMetadata", + "nameLocations": [ + "1900:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "1900:14:0" + }, + "referencedDeclaration": 174, + "src": "1900:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 189, + "nodeType": "ArrayTypeName", + "src": "1900:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "src": "1899:25:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 307, + "nodeType": "FunctionDefinition", + "src": "2248:729:0", + "body": { + "id": 306, + "nodeType": "Block", + "src": "2450:527:0", + "statements": [ + { + "assignments": [ + null, + 265 + ], + "declarations": [ + null, + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "2464:16:0", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "2459:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 264, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2459:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 273, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 270, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2512:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2504:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2504:7:0", + "typeDescriptions": {} + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2504:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 266, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2484:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2496:7:0", + "memberName": "markets", + "nodeType": "MemberAccess", + "referencedDeclaration": 81, + "src": "2484:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (address) view external returns (bool,uint256)" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2484:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2456:64:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 277, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 275, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2573:7:0", + "typeDescriptions": {} + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 282, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 258, + "src": "2635:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 279, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2609:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2616:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2609:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2609:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 286, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2679:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 284, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2662:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2669:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "2662:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2662:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 290, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2743:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 288, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2716:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2723:19:0", + "memberName": "balanceOfUnderlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 59, + "src": "2716:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2716:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 294, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2804:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 292, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2776:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2783:20:0", + "memberName": "borrowBalanceCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "2776:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2776:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 296, + "name": "collateralFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2840:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 297, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2880:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2887:19:0", + "memberName": "exchangeRateCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 71, + "src": "2880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2880:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 302, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 254, + "src": "2956:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + ], + "expression": { + "id": 300, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "2925:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2937:18:0", + "memberName": "getUnderlyingPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 156, + "src": "2925:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", + "typeString": "function (contract CToken) view external returns (uint256)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2925:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 274, + "name": "CTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "2540:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2565:6:0", + "2598:9:0", + "2653:7:0", + "2697:17:0", + "2761:13:0", + "2822:16:0", + "2866:12:0", + "2918:5:0" + ], + "names": [ + "cToken", + "allowance", + "balance", + "balanceUnderlying", + "borrowBalance", + "collateralFactor", + "exchangeRate", + "price" + ], + "nodeType": "FunctionCall", + "src": "2540:432:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "functionReturnParameters": 263, + "id": 305, + "nodeType": "Return", + "src": "2527:445:0" + } + ] + }, + "functionSelector": "bc3b5005", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cTokenMetadata", + "nameLocation": "2257:14:0", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 248, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "2289:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2277:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 247, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 246, + "name": "Comptroller", + "nameLocations": [ + "2277:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 148, + "src": "2277:11:0" + }, + "referencedDeclaration": 148, + "src": "2277:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$148", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 251, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2318:11:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2306:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 250, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 249, + "name": "PriceOracle", + "nameLocations": [ + "2306:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 157, + "src": "2306:11:0" + }, + "referencedDeclaration": 157, + "src": "2306:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 254, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2342:6:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2335:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + }, + "typeName": { + "id": 253, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 252, + "name": "CToken", + "nameLocations": [ + "2335:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 72, + "src": "2335:6:0" + }, + "referencedDeclaration": 72, + "src": "2335:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$72", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "account", + "nameLocation": "2370:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2354:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2354:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2399:7:0", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2383:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2383:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2271:139:0" + }, + "returnParameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 307, + "src": "2427:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + }, + "typeName": { + "id": 261, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 260, + "name": "CTokenMetadata", + "nameLocations": [ + "2427:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 174, + "src": "2427:14:0" + }, + "referencedDeclaration": 174, + "src": "2427:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2426:23:0" + }, + "scope": 308, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CompoundV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 308 + ], + "name": "CompoundV2Query", + "nameLocation": "1518:15:0", + "scope": 309, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7b2be59..223db53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -356,10 +356,10 @@ "@ethersproject/abi" "^5.7.0" "@ethersproject/providers" "^5.7.1" -"@compound-finance/sleuth@^1.0.1-alpha1": - version "1.0.1-alpha1" - resolved "https://registry.yarnpkg.com/@compound-finance/sleuth/-/sleuth-1.0.1-alpha1.tgz#f85a16f7963d982714d0e5ae124ac8e82440c406" - integrity sha512-8fVxgR4ktnCQZKOWNdI7MRH65xRYPwxpcnTMQy6K3qA2kDK0S+27ue68JwmX7NtVn5JlcFdifsbysxcue+5jnQ== +"@compound-finance/sleuth@^1.0.1-alpha5": + version "1.0.1-alpha5" + resolved "https://registry.yarnpkg.com/@compound-finance/sleuth/-/sleuth-1.0.1-alpha5.tgz#3987066c0e0fdf9fdfce5449e5c6de59c20258ae" + integrity sha512-0oZymUHs3sYZemxa130Ip3rl23O6BIid9b9UBLyvtt3FSQGCIKckFmGRiQOOXxUQFZQYbC43EY7aKPbMygWCHg== dependencies: "@ethersproject/contracts" "^5.7.0" "@ethersproject/providers" "^5.7.2" From ad7296b2c617d127d1aa47b5a1640b0a1742b4a3 Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Tue, 3 Jan 2023 20:42:25 -0500 Subject: [PATCH 04/11] Sleuth with CometState --- .env.playground | 2 +- package.json | 4 +- script/playground.sh | 2 +- web/AaveV2Migrator.tsx | 173 +- web/App.tsx | 8 - web/CompoundV2Migrator.tsx | 139 +- web/Migrator.tsx | 25 +- web/helpers/Sleuth/AaveV2Query.sol | 119 + web/helpers/Sleuth/CometQuery.sol | 364 + web/helpers/Sleuth/CompoundV2Query.sol | 43 +- .../Sleuth/out/AaveV2Query.sol/AToken.json | 4047 +++++ .../out/AaveV2Query.sol/AavePriceOracle.json | 3998 ++++ .../out/AaveV2Query.sol/AaveV2Query.json | 6121 +++++++ .../Sleuth/out/AaveV2Query.sol/DebtToken.json | 3998 ++++ .../out/AaveV2Query.sol/LendingPool.json | 4012 +++++ .../LendingPoolAddressesProvider.json | 3986 ++++ .../Sleuth/out/CometQuery.sol/Comet.json | 15039 ++++++++++++++++ .../Sleuth/out/CometQuery.sol/CometQuery.json | 14600 +++++++++++++++ .../Sleuth/out/CometQuery.sol/ERC20.json | 13477 ++++++++++++++ .../out/CompoundV2Query.sol/CToken.json | 2742 +-- .../Sleuth/out/CompoundV2Query.sol/Comet.json | 4675 +++++ .../CompoundV2Query.sol/CompoundV2Query.json | 4805 +++-- .../out/CompoundV2Query.sol/Comptroller.json | 2713 +-- .../out/CompoundV2Query.sol/PriceOracle.json | 2733 +-- web/helpers/utils.ts | 93 +- web/types.ts | 45 + yarn.lock | 8 +- 27 files changed, 83496 insertions(+), 4475 deletions(-) create mode 100644 web/helpers/Sleuth/AaveV2Query.sol create mode 100644 web/helpers/Sleuth/CometQuery.sol create mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json create mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json create mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json create mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json create mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json create mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json create mode 100644 web/helpers/Sleuth/out/CometQuery.sol/Comet.json create mode 100644 web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json create mode 100644 web/helpers/Sleuth/out/CometQuery.sol/ERC20.json create mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json diff --git a/.env.playground b/.env.playground index 43ad7b7..c88eba0 100644 --- a/.env.playground +++ b/.env.playground @@ -1,2 +1,2 @@ MAINNET_RPC_URL=http://localhost:8545 -VITE_BYPASS_MAINNET_RPC_URL=https://mainnet-eth.compound.finance/3bbee0d395d8908f9872fc496cdc45cc +VITE_BYPASS_MAINNET_RPC_URL=https://mainnet-ethereum.compound.finance diff --git a/package.json b/package.json index 41626ab..c695b45 100644 --- a/package.json +++ b/package.json @@ -15,11 +15,11 @@ "playground:mainnet": "script/playground.sh mainnet", "playground:v1": "script/playground.sh v1", "playground:v2": "script/playground.sh v2", - "sleuth": "forge build --root web/helpers -c Sleuth -o Sleuth/out" + "sleuth": "forge build --via-ir --root web/helpers -c Sleuth -o Sleuth/out" }, "dependencies": { "@compound-finance/comet-extension": "^0.0.5", - "@compound-finance/sleuth": "^1.0.1-alpha5", + "@compound-finance/sleuth": "^1.0.1-alpha6", "@ethersproject/abi": "^5.6.2", "@ethersproject/bignumber": "^5.4.2", "@ethersproject/contracts": "^5.6.1", diff --git a/script/playground.sh b/script/playground.sh index d2f1080..13635bc 100755 --- a/script/playground.sh +++ b/script/playground.sh @@ -10,7 +10,7 @@ case "$1" in export redeploy=false playground_script=script/PlaygroundV2.s.sol - if [ $(($fork_block < $v2_mainnet_deploy_block)) ] + if [ $(($fork_block+0)) -lt $(($v2_mainnet_deploy_block+0)) ] then echo "Fork block too early, overwriting with block number $v2_mainnet_deploy_block" fork_block=$v2_mainnet_deploy_block diff --git a/web/AaveV2Migrator.tsx b/web/AaveV2Migrator.tsx index 9571d00..484ee66 100644 --- a/web/AaveV2Migrator.tsx +++ b/web/AaveV2Migrator.tsx @@ -1,132 +1,101 @@ import '../styles/main.scss'; -import { CometState } from '@compound-finance/comet-extension'; -import { Contract } from '@ethersproject/contracts'; +import { Sleuth } from '@compound-finance/sleuth'; import { JsonRpcProvider } from '@ethersproject/providers'; -import { Contract as MulticallContract, Provider } from 'ethers-multicall'; +import { BigNumber } from 'ethers'; import { useMemo } from 'react'; -import ATokenAbi from '../abis/Aave/AToken'; -import AaveDebtToken from '../abis/Aave/DebtToken'; -import AaveLendingPool from '../abis/Aave/LendingPool'; -import AaveLendingPoolAddressesProvider from '../abis/Aave/LendingPoolAddressesProvider'; -import AavePriceOracle from '../abis/Aave/PriceOracle'; - -import Comet from '../abis/Comet'; - -import { multicall } from './helpers/multicall'; import { usdPriceFromEthPrice, getLTVAsFactor } from './helpers/numbers'; +import AaveV2Query from './helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json'; +import { cometQueryResponseToCometData } from './helpers/utils'; import Migrator, { MigratorState } from './Migrator'; -import { getIdByNetwork } from './Network'; import { AaveNetworkConfig, AppProps, + CometQueryResponse, Network, MigrationSource, MigrationSourceInfo, StateType, SwapRouteState, MigrateBorrowTokenState, - MigrateCollateralTokenState + MigrateCollateralTokenState, + AToken } from './types'; +const QUERY = Sleuth.querySol(AaveV2Query, { queryFunctionName: 'getMigratorData' }); + type AaveV2MigratorProps = AppProps & { account: string; - cometState: CometState; networkConfig: AaveNetworkConfig; selectMigratorSource: (source: MigrationSource) => void; }; +type ATokenRequest = { + aToken: string; + stableDebtToken: string; + variableDebtToken: string; +}; + +type ATokenMetadataQueryArgs = [string, string, string, ATokenRequest[], string, string, string]; +type ATokenMetadata = { + aToken: string; + stableDebtToken: string; + variableDebtToken: string; + allowance: BigNumber; + balance: BigNumber; + stableDebtBalance: BigNumber; + variableDebtBalance: BigNumber; + configuration: BigNumber; + priceInETH: BigNumber; +}; +type AaveV2QueryResponse = { + migratorEnabled: BigNumber; + tokens: ATokenMetadata[]; + cometState: CometQueryResponse; + usdcPriceInETH: BigNumber; +}; + export default function AaveV2Migrator({ rpc, web3, - cometState, account, networkConfig, selectMigratorSource }: AaveV2MigratorProps) { - const lendingPoolAddressesProvider = useMemo( - () => new Contract(networkConfig.lendingPoolAddressesProviderAddress, AaveLendingPoolAddressesProvider, web3), - [web3] - ); - const oraclePromise = useMemo(async () => { - const oracleAddress = await lendingPoolAddressesProvider.getPriceOracle(); - return new MulticallContract(oracleAddress, AavePriceOracle); - }, [lendingPoolAddressesProvider, networkConfig.network]); + const sleuth = useMemo(() => new Sleuth(web3), [web3]); + return ( { const aaveNetworkConfig = networkConfig as AaveNetworkConfig; - const ethcallProvider = new Provider(web3, getIdByNetwork(aaveNetworkConfig.network)); - const comet = new MulticallContract(aaveNetworkConfig.rootsV3.comet, Comet); - const lendingPool = new MulticallContract(aaveNetworkConfig.lendingPoolAddress, AaveLendingPool); - const oracle = await oraclePromise; - - const aTokenContracts = aaveNetworkConfig.aTokens.map( - ({ aTokenAddress }) => new MulticallContract(aTokenAddress, ATokenAbi) - ); - const stableDebtTokenContracts = aaveNetworkConfig.aTokens.map( - ({ stableDebtTokenAddress }) => new MulticallContract(stableDebtTokenAddress, AaveDebtToken) - ); - const variableDebtTokenContracts = aaveNetworkConfig.aTokens.map( - ({ variableDebtTokenAddress }) => new MulticallContract(variableDebtTokenAddress, AaveDebtToken) - ); - - const balanceCalls = aTokenContracts.map(aTokenContract => aTokenContract.balanceOf(account)); - const allowanceCalls = aTokenContracts.map(aTokenContract => - aTokenContract.allowance(account, aaveNetworkConfig.migratorAddress) - ); - const collateralFactorCalls = aaveNetworkConfig.aTokens.map(({ address }) => - lendingPool.getConfiguration(address) - ); - const borrowBalanceStableCalls = stableDebtTokenContracts.map(debtTokenContract => - debtTokenContract.balanceOf(account) - ); - const borrowBalanceVariableCalls = variableDebtTokenContracts.map(debtTokenContract => - debtTokenContract.balanceOf(account) - ); - - const [ - migratorEnabled, - usdcPriceInEth, - pricesInEth, - balanceResponses, - allowanceResponses, - collateralFactorResponses, - borrowBalanceStableResponses, - borrowBalanceVariableResponses - ] = await multicall(ethcallProvider, [ - comet.allowance(account, aaveNetworkConfig.migratorAddress), - oracle.getAssetPrice('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'), // HARDCODED MAINNET USDC ADDRESS - oracle.getAssetsPrices(aaveNetworkConfig.aTokens.map(aToken => aToken.address)), - balanceCalls, - allowanceCalls, - collateralFactorCalls, - borrowBalanceStableCalls, - borrowBalanceVariableCalls + const { migratorEnabled, tokens, cometState, usdcPriceInETH } = await sleuth.fetch< + AaveV2QueryResponse, + ATokenMetadataQueryArgs + >(QUERY, [ + aaveNetworkConfig.lendingPoolAddressesProviderAddress, + aaveNetworkConfig.lendingPoolAddress, + aaveNetworkConfig.rootsV3.comet, + aaveNetworkConfig.aTokens.map(atoken => { + return { + aToken: atoken.aTokenAddress, + stableDebtToken: atoken.stableDebtTokenAddress, + variableDebtToken: atoken.variableDebtTokenAddress + }; + }), + account, + aaveNetworkConfig.migratorAddress, + '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' ]); - const balances = balanceResponses.map((balance: any) => balance.toBigInt()); - const allowances = allowanceResponses.map((allowance: any) => allowance.toBigInt()); - const collateralFactors = collateralFactorResponses.map((configData: any, i: number) => - getLTVAsFactor(configData.data.toBigInt()) - ); - const borrowBalancesStableDebtToken = borrowBalanceStableResponses.map((balance: any) => balance.toBigInt()); - const borrowBalancesVariableDebtToken = borrowBalanceVariableResponses.map((balance: any) => - balance.toBigInt() - ); - const prices = pricesInEth.map((price: any) => - usdPriceFromEthPrice(usdcPriceInEth.toBigInt(), price.toBigInt(), 8) - ); - - const borrowTokens: MigrateBorrowTokenState[] = aaveNetworkConfig.aTokens - .map((aToken, index) => { + const borrowTokens: MigrateBorrowTokenState[] = tokens + .map((aTokenMetadata, index) => { + const aToken: AToken = aaveNetworkConfig.aTokens[index]; const maybeStableDebtTokenState = state.type === StateType.Loading ? undefined @@ -136,8 +105,8 @@ export default function AaveV2Migrator({ ? undefined : state.data.borrowTokens.find(token => token.address === aToken.variableDebtTokenAddress); - const borrowBalanceStable: bigint = borrowBalancesStableDebtToken[index]; - const borrowBalanceVariable: bigint = borrowBalancesVariableDebtToken[index]; + const borrowBalanceStable: bigint = aTokenMetadata.stableDebtBalance.toBigInt(); + const borrowBalanceVariable: bigint = aTokenMetadata.variableDebtBalance.toBigInt(); const decimals: number = aToken.decimals; const name: string = aToken.aTokenSymbol; const symbol: string = aToken.aTokenSymbol; @@ -145,7 +114,11 @@ export default function AaveV2Migrator({ const repayAmountVariable: string = maybeVariableDebtTokenState?.repayAmount ?? ''; const swapRouteStable: SwapRouteState = maybeStableDebtTokenState?.swapRoute; const swapRouteVariable: SwapRouteState = maybeVariableDebtTokenState?.swapRoute; - const price: bigint = prices[index]; + const price: bigint = usdPriceFromEthPrice( + usdcPriceInETH.toBigInt(), + aTokenMetadata.priceInETH.toBigInt(), + 8 + ); const underlying = { address: aToken.address, decimals: aToken.decimals, @@ -180,18 +153,23 @@ export default function AaveV2Migrator({ return [stableDebtTokenState, variableDebtTokenState]; }) .flat(); - const collateralTokens: MigrateCollateralTokenState[] = aaveNetworkConfig.aTokens.map((aToken, index) => { + const collateralTokens: MigrateCollateralTokenState[] = tokens.map((aTokenMetadata, index) => { + const aToken: AToken = aaveNetworkConfig.aTokens[index]; const maybeTokenState = state.type === StateType.Loading ? undefined : state.data.collateralTokens.find(token => token.address === aToken.aTokenAddress); - const balance: bigint = balances[index]; + const balance: bigint = aTokenMetadata.balance.toBigInt(); const balanceUnderlying = balance; - const allowance: bigint = allowances[index]; - const collateralFactor: bigint = collateralFactors[index]; + const allowance: bigint = aTokenMetadata.allowance.toBigInt(); + const collateralFactor: bigint = getLTVAsFactor(aTokenMetadata.configuration.toBigInt()); const transfer: string = maybeTokenState?.transfer ?? ''; - const price: bigint = prices[index]; + const price: bigint = usdPriceFromEthPrice( + usdcPriceInETH.toBigInt(), + aTokenMetadata.priceInETH.toBigInt(), + 8 + ); const decimals: number = aToken.decimals; const name: string = aToken.aTokenSymbol; const symbol: string = aToken.aTokenSymbol; @@ -218,9 +196,10 @@ export default function AaveV2Migrator({ }); return { - migratorEnabled, + migratorEnabled: migratorEnabled.toBigInt() > 0n, borrowTokens, - collateralTokens + collateralTokens, + cometState: cometQueryResponseToCometData(cometState) }; }} selectMigratorSource={selectMigratorSource} diff --git a/web/App.tsx b/web/App.tsx index c5c21ec..2dd7a27 100644 --- a/web/App.tsx +++ b/web/App.tsx @@ -1,7 +1,5 @@ import '../styles/main.scss'; -import { CometState } from '@compound-finance/comet-extension'; -import { StateType as CometStateType } from '@compound-finance/comet-extension/dist/CometState'; import { useCallback, useEffect, useState } from 'react'; import { LoadingView } from './components/LoadingViews'; @@ -18,7 +16,6 @@ import { AaveNetworkConfig, AppProps, CompoundNetworkConfig, Network, MigrationS export default ({ rpc, web3 }: AppProps) => { const [account, setAccount] = useState(null); - const [cometState, setCometState] = useState([CometStateType.Loading, undefined]); const timer = usePoll(!!account ? 30000 : 3000); const [migrationSource, setMigrationSource] = useState(MigrationSource.CompoundV2); const [compoundNetworkConfig, setCompoundNetworkConfig] = useState | null>(null); @@ -35,9 +32,6 @@ export default ({ rpc, web3 }: AppProps) => { document.body.classList.add(`theme--${theme.toLowerCase()}`); }); }, - setCometState: ({ cometState: cometStateNew }) => { - setCometState(cometStateNew); - } }); } }, [rpc]); @@ -75,7 +69,6 @@ export default ({ rpc, web3 }: AppProps) => { { = AppProps & { account: string; - cometState: CometState; networkConfig: CompoundNetworkConfig; selectMigratorSource: (source: MigrationSource) => void; }; +type CTokenRequest = { + cToken: string; + priceOracleSymbol: string; +}; + +type CTokenMetadataQueryArgs = [string, string, CTokenRequest[], string, string]; +type CTokenMetadata = { + cToken: string; + allowance: BigNumber; + balance: BigNumber; + balanceUnderlying: BigNumber; + borrowBalance: BigNumber; + collateralFactor: BigNumber; + exchangeRate: BigNumber; + price: BigNumber; +}; +type CompoundV2QueryResponse = { + migratorEnabled: BigNumber; + tokens: CTokenMetadata[]; + cometState: CometQueryResponse; +}; + export default function CompoundV2Migrator({ rpc, web3, account, - cometState, networkConfig, selectMigratorSource }: CompoundV2MigratorProps) { - const comptroller = useMemo(() => new Contract(networkConfig.comptrollerAddress, Comptroller, web3), [ - web3, - networkConfig.network - ]); - const oraclePromise = useMemo(async () => { - const oracleAddress = await comptroller.oracle(); - return new MulticallContract(oracleAddress, CompoundV2Oracle); - }, [comptroller]); - const sleuth = useMemo(() => new Sleuth(web3), [web3]); return ( { const compoundNetworkConfig = networkConfig as CompoundNetworkConfig; - const response = await sleuth.fetch(QUERY, [ + const { migratorEnabled, tokens, cometState } = await sleuth.fetch< + CompoundV2QueryResponse, + CTokenMetadataQueryArgs + >(QUERY, [ compoundNetworkConfig.comptrollerAddress, - compoundNetworkConfig.cTokens.map(ctoken => ctoken.address), + compoundNetworkConfig.rootsV3.comet, + compoundNetworkConfig.cTokens.map(ctoken => { + const symbol = ctoken.underlying.symbol === 'WBTC' ? 'BTC' : ctoken.underlying.symbol; + return { cToken: ctoken.address, priceOracleSymbol: symbol }; + }), account, compoundNetworkConfig.migratorAddress ]); - console.log('SLEUTHING....', response); - - const ethcallProvider = new Provider(web3, getIdByNetwork(compoundNetworkConfig.network)); - const comet = new MulticallContract(compoundNetworkConfig.rootsV3.comet, Comet); - const comptroller = new MulticallContract(compoundNetworkConfig.comptrollerAddress, Comptroller); - const cTokenContracts = compoundNetworkConfig.cTokens.map( - ({ address }) => new MulticallContract(address, CToken) - ); - const oracle = await oraclePromise; - - const balanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.balanceOf(account)); - const borrowBalanceCalls = cTokenContracts.map(cTokenContract => cTokenContract.borrowBalanceCurrent(account)); - const exchangeRateCalls = cTokenContracts.map(cTokenContract => cTokenContract.exchangeRateCurrent()); - const allowanceCalls = cTokenContracts.map(cTokenContract => - cTokenContract.allowance(account, compoundNetworkConfig.migratorAddress) - ); - const collateralFactorCalls = cTokenContracts.map(cTokenContract => - comptroller.markets(cTokenContract.address) - ); - const priceCalls = compoundNetworkConfig.cTokens.map(cToken => { - const priceSymbol = cToken.underlying.symbol === 'WBTC' ? 'BTC' : cToken.underlying.symbol; - return oracle.price(priceSymbol); - }); - - const [ - migratorEnabled, - balanceResponses, - borrowBalanceResponses, - exchangeRateResponses, - allowanceResponses, - collateralFactorResponses, - priceResponses - ] = await multicall(ethcallProvider, [ - comet.allowance(account, compoundNetworkConfig.migratorAddress), - balanceCalls, - borrowBalanceCalls, - exchangeRateCalls, - allowanceCalls, - collateralFactorCalls, - priceCalls - ]); - - const balances = balanceResponses.map((balance: any) => balance.toBigInt()); - const borrowBalances = borrowBalanceResponses.map((borrowBalance: any) => borrowBalance.toBigInt()); - const exchangeRates = exchangeRateResponses.map((exchangeRate: any) => exchangeRate.toBigInt()); - const allowances = allowanceResponses.map((allowance: any) => allowance.toBigInt()); - const collateralFactors = collateralFactorResponses.map(([, collateralFactor]: any) => - collateralFactor.toBigInt() - ); - const prices = priceResponses.map((price: any) => price.toBigInt() * 100n); // Scale up to match V3 price precision of 1e8 - const borrowTokens: MigrateBorrowTokenState[] = compoundNetworkConfig.cTokens.map((cToken, index) => { + const borrowTokens: MigrateBorrowTokenState[] = tokens.map((cTokenMetadata, index) => { + const cToken: CToken = compoundNetworkConfig.cTokens[index]; const maybeTokenState = state.type === StateType.Loading ? undefined : state.data.borrowTokens.find(token => token.address === cToken.address); - const borrowBalance: bigint = borrowBalances[index]; + const borrowBalance: bigint = cTokenMetadata.borrowBalance.toBigInt(); const decimals: number = cToken.decimals; const repayAmount: string = maybeTokenState?.repayAmount ?? ''; const swapRoute: SwapRouteState = maybeTokenState?.swapRoute; - const price: bigint = prices[index]; + const price: bigint = cTokenMetadata.price.toBigInt() * 100n; // prices are 1e6, scale to 1e8 to match Comet price precision return { address: cToken.address, @@ -147,20 +110,21 @@ export default function CompoundV2Migrator({ underlying: cToken.underlying }; }); - const collateralTokens: MigrateCollateralTokenState[] = compoundNetworkConfig.cTokens.map((cToken, index) => { + const collateralTokens: MigrateCollateralTokenState[] = tokens.map((cTokenMetadata, index) => { + const cToken = compoundNetworkConfig.cTokens[index]; const maybeTokenState = state.type === StateType.Loading ? undefined : state.data.collateralTokens.find(token => token.address === cToken.address); - const balance: bigint = balances[index]; - const exchangeRate: bigint = exchangeRates[index]; - const balanceUnderlying: bigint = (balance * exchangeRate) / 1000000000000000000n; - const allowance: bigint = allowances[index]; - const collateralFactor: bigint = collateralFactors[index]; + const balance: bigint = cTokenMetadata.balance.toBigInt(); + const exchangeRate: bigint = cTokenMetadata.exchangeRate.toBigInt(); + const balanceUnderlying: bigint = cTokenMetadata.balanceUnderlying.toBigInt(); + const allowance: bigint = cTokenMetadata.allowance.toBigInt(); + const collateralFactor: bigint = cTokenMetadata.collateralFactor.toBigInt(); const decimals: number = cToken.decimals; const transfer: string = maybeTokenState?.transfer ?? ''; - const price: bigint = prices[index]; + const price: bigint = cTokenMetadata.price.toBigInt() * 100n; // prices are 1e6, scale to 1e8 to match Comet price precision return { address: cToken.address, @@ -179,9 +143,10 @@ export default function CompoundV2Migrator({ }); return { - migratorEnabled, + migratorEnabled: migratorEnabled.toBigInt() > 0n, borrowTokens, - collateralTokens + collateralTokens, + cometState: cometQueryResponseToCometData(cometState) }; }} selectMigratorSource={selectMigratorSource} diff --git a/web/Migrator.tsx b/web/Migrator.tsx index e15102e..9e47c1f 100644 --- a/web/Migrator.tsx +++ b/web/Migrator.tsx @@ -1,7 +1,6 @@ import '../styles/main.scss'; -import { CometState } from '@compound-finance/comet-extension'; -import { StateType as CometStateType } from '@compound-finance/comet-extension/dist/CometState'; +import { StateType as CometStateType, ProtocolAndAccountState } from '@compound-finance/comet-extension/dist/CometState'; import { Contract } from '@ethersproject/contracts'; import { JsonRpcProvider } from '@ethersproject/providers'; import { AlphaRouter } from '@uniswap/smart-order-router'; @@ -51,7 +50,6 @@ import Dropdown from './components/Dropdown'; type MigratorProps = AppProps & { account: string; - cometState: CometState; migrationSourceInfo: MigrationSourceInfo; getMigrateData: ( web3: JsonRpcProvider, @@ -61,6 +59,7 @@ type MigratorProps = AppProps & { migratorEnabled: boolean; borrowTokens: MigrateBorrowTokenState[]; collateralTokens: MigrateCollateralTokenState[]; + cometState: ProtocolAndAccountState; }>; selectMigratorSource: (source: MigrationSource) => void; }; @@ -70,6 +69,7 @@ export interface MigratorStateData { migratorEnabled: boolean; borrowTokens: MigrateBorrowTokenState[]; collateralTokens: MigrateCollateralTokenState[]; + cometState: ProtocolAndAccountState; } export type MigratorStateLoading = { type: StateType.Loading; data: { error: null | string } }; @@ -94,6 +94,7 @@ type ActionSetAccountState = { migratorEnabled: boolean; borrowTokens: MigrateBorrowTokenState[]; collateralTokens: MigrateCollateralTokenState[]; + cometState: ProtocolAndAccountState; }; }; type ActionSetError = { @@ -249,7 +250,6 @@ const initialState: MigratorState = { type: StateType.Loading, data: { error: nu export default function Migrator({ web3, account, - cometState, migrationSourceInfo, getMigrateData, selectMigratorSource @@ -275,23 +275,24 @@ export default function Migrator({ ]); useAsyncEffect(async () => { - const { borrowTokens, collateralTokens, migratorEnabled } = await getMigrateData(web3, migrationSourceInfo, state); + const { borrowTokens, collateralTokens, migratorEnabled, cometState } = await getMigrateData(web3, migrationSourceInfo, state); dispatch({ type: ActionType.SetAccountState, payload: { borrowTokens, collateralTokens, + cometState, migratorEnabled } }); }, [timer, tracker, account, networkConfig.network]); - if (state.type === StateType.Loading || cometState[0] !== CometStateType.Hydrated) { + if (state.type === StateType.Loading) { return ; } - const cometData = cometState[1]; const { borrowTokens, collateralTokens, migratorEnabled } = state.data; + const cometData = state.data.cometState; const tokensWithBorrowBalances = borrowTokens.filter(tokenState => { return tokenState.borrowBalance > 0n && !!stableCoins.find(coin => coin === tokenState.underlying.symbol); @@ -348,8 +349,6 @@ export default function Migrator({ v3BorrowValue, stateType: state.type }); - console.log('MIgrate Params', migrateParams); - const quoteProvider = import.meta.env.VITE_BYPASS_MAINNET_RPC_URL ? new JsonRpcProvider(import.meta.env.VITE_BYPASS_MAINNET_RPC_URL) : web3; @@ -644,14 +643,6 @@ export default function Migrator({ const disabled = tokenState.allowance === 0n; const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); - if (tokenState.underlying.symbol === 'UNI') { - console.log( - tokenState.underlying.decimals, - tokenState.balanceUnderlying, - formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false) - ); - } - if (tokenState.transfer === 'max') { transfer = formatTokenBalance(tokenState.underlying.decimals, tokenState.balanceUnderlying, false); transferDollarValue = formatTokenBalance( diff --git a/web/helpers/Sleuth/AaveV2Query.sol b/web/helpers/Sleuth/AaveV2Query.sol new file mode 100644 index 0000000..2e27cf4 --- /dev/null +++ b/web/helpers/Sleuth/AaveV2Query.sol @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.16; + +import './CometQuery.sol'; + +interface AToken { + function allowance(address owner, address spender) external view returns (uint); + + function balanceOf(address owner) external view returns (uint); +} + +interface DebtToken { + function balanceOf(address owner) external view returns (uint); +} + +interface LendingPoolAddressesProvider { + function getPriceOracle() external view returns (AavePriceOracle); +} + +interface LendingPool { + struct ReserveConfigurationMap { + //bit 0-15: LTV + //bit 16-31: Liq. threshold + //bit 32-47: Liq. bonus + //bit 48-55: Decimals + //bit 56: Reserve is active + //bit 57: reserve is frozen + //bit 58: borrowing is enabled + //bit 59: stable rate borrowing enabled + //bit 60-63: reserved + //bit 64-79: reserve factor + uint256 data; + } + + function getConfiguration(address asset) external view returns (ReserveConfigurationMap memory); +} + +interface AavePriceOracle { + function getAssetPrice(address asset) external view returns (uint); +} + +contract AaveV2Query is CometQuery { + struct ATokenMetadata { + address aToken; + address stableDebtToken; + address variableDebtToken; + uint allowance; + uint balance; + uint stableDebtBalance; + uint variableDebtBalance; + uint configuration; + uint priceInETH; + } + + struct QueryResponse { + uint migratorEnabled; + ATokenMetadata[] tokens; + CometStateWithAccountState cometState; + uint usdcPriceInETH; + } + + struct ATokenRequest { + AToken aToken; + DebtToken stableDebtToken; + DebtToken variableDebtToken; + } + + function getMigratorData( + LendingPoolAddressesProvider provider, + LendingPool pool, + Comet comet, + ATokenRequest[] calldata aTokens, + address payable account, + address payable spender, + address usdcAddress + ) external view returns (QueryResponse memory) { + AavePriceOracle priceOracle = provider.getPriceOracle(); + uint aTokenCount = aTokens.length; + ATokenMetadata[] memory tokens = new ATokenMetadata[](aTokenCount); + for (uint i = 0; i < aTokenCount; i++) { + tokens[i] = aTokenMetadata(pool, priceOracle, aTokens[i], account, spender); + } + + return + QueryResponse({ + migratorEnabled: comet.allowance(account, spender), + tokens: tokens, + cometState: queryWithAccount(comet, account, payable(0)), + usdcPriceInETH: priceOracle.getAssetPrice(usdcAddress) + }); + } + + function aTokenMetadata( + LendingPool pool, + AavePriceOracle priceOracle, + ATokenRequest memory aTokenRequest, + address payable account, + address payable spender + ) public view returns (ATokenMetadata memory) { + AToken aToken = aTokenRequest.aToken; + DebtToken stableDebtToken = aTokenRequest.stableDebtToken; + DebtToken variableDebtToken = aTokenRequest.variableDebtToken; + + LendingPool.ReserveConfigurationMap memory configuration = pool.getConfiguration(address(aToken)); + + return + ATokenMetadata({ + aToken: address(aToken), + stableDebtToken: address(stableDebtToken), + variableDebtToken: address(variableDebtToken), + allowance: aToken.allowance(account, spender), + balance: aToken.balanceOf(account), + stableDebtBalance: stableDebtToken.balanceOf(account), + variableDebtBalance: stableDebtToken.balanceOf(account), + configuration: configuration.data, + priceInETH: priceOracle.getAssetPrice(address(aToken)) + }); + } +} diff --git a/web/helpers/Sleuth/CometQuery.sol b/web/helpers/Sleuth/CometQuery.sol new file mode 100644 index 0000000..a6decf1 --- /dev/null +++ b/web/helpers/Sleuth/CometQuery.sol @@ -0,0 +1,364 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.16; + +interface Comet { + struct AssetInfo { + uint8 offset; + address asset; + address priceFeed; + uint64 scale; + uint64 borrowCollateralFactor; + uint64 liquidateCollateralFactor; + uint64 liquidationFactor; + uint128 supplyCap; + } + + struct TotalsBasic { + uint64 baseSupplyIndex; + uint64 baseBorrowIndex; + uint64 trackingSupplyIndex; + uint64 trackingBorrowIndex; + uint104 totalSupplyBase; + uint104 totalBorrowBase; + uint40 lastAccrualTime; + uint8 pauseFlags; + } + + function quoteCollateral(address asset, uint baseAmount) external view returns (uint); + + function getAssetInfo(uint8 i) external view returns (AssetInfo memory); + + function getAssetInfoByAddress(address asset) external view returns (AssetInfo memory); + + function getCollateralReserves(address asset) external view returns (uint); + + function getReserves() external view returns (int); + + function getPrice(address priceFeed) external view returns (uint); + + function isBorrowCollateralized(address account) external view returns (bool); + + function isLiquidatable(address account) external view returns (bool); + + function totalSupply() external view returns (uint256); + + function totalBorrow() external view returns (uint256); + + function balanceOf(address owner) external view returns (uint256); + + function borrowBalanceOf(address account) external view returns (uint256); + + function getSupplyRate(uint utilization) external view returns (uint64); + + function getBorrowRate(uint utilization) external view returns (uint64); + + function getUtilization() external view returns (uint); + + function governor() external view returns (address); + + function pauseGuardian() external view returns (address); + + function baseToken() external view returns (address); + + function baseTokenPriceFeed() external view returns (address); + + function extensionDelegate() external view returns (address); + + function supplyKink() external view returns (uint); + + function supplyPerSecondInterestRateSlopeLow() external view returns (uint); + + function supplyPerSecondInterestRateSlopeHigh() external view returns (uint); + + function supplyPerSecondInterestRateBase() external view returns (uint); + + function borrowKink() external view returns (uint); + + function borrowPerSecondInterestRateSlopeLow() external view returns (uint); + + function borrowPerSecondInterestRateSlopeHigh() external view returns (uint); + + function borrowPerSecondInterestRateBase() external view returns (uint); + + function storeFrontPriceFactor() external view returns (uint); + + function baseScale() external view returns (uint); + + function trackingIndexScale() external view returns (uint); + + function baseTrackingSupplySpeed() external view returns (uint); + + function baseTrackingBorrowSpeed() external view returns (uint); + + function baseMinForRewards() external view returns (uint); + + function baseBorrowMin() external view returns (uint); + + function targetReserves() external view returns (uint); + + function numAssets() external view returns (uint8); + + function collateralBalanceOf(address account, address asset) external view returns (uint128); + + function baseTrackingAccrued(address account) external view returns (uint64); + + function baseAccrualScale() external view returns (uint64); + + function baseIndexScale() external view returns (uint64); + + function factorScale() external view returns (uint64); + + function priceScale() external view returns (uint64); + + function maxAssets() external view returns (uint8); + + function totalsBasic() external view returns (TotalsBasic memory); + + function totalsCollateral(address token) external view returns (uint); + + function allowance(address owner, address spender) external view returns (uint256); +} + +interface ERC20 { + function allowance(address owner, address spender) external view returns (uint); + + function balanceOf(address owner) external view returns (uint); + + function decimals() external view returns (uint); + + function name() external view returns (string memory); + + function symbol() external view returns (string memory); +} + +contract CometQuery { + uint internal constant SECONDS_PER_YEAR = 60 * 60 * 24 * 365; + + struct BaseAsset { + address baseAsset; + uint balanceOfComet; + uint decimals; + uint minBorrow; + string name; + address priceFeed; + uint price; + string symbol; + } + + struct BaseAssetWithAccountState { + address baseAsset; + uint allowance; + uint balance; + uint balanceOfComet; + uint decimals; + uint minBorrow; + string name; + address priceFeed; + uint price; + string symbol; + uint walletBalance; + } + + struct CollateralAsset { + address collateralAsset; + uint collateralFactor; + uint decimals; + string name; + uint liquidateCollateralFactor; + uint liquidationFactor; + uint price; + address priceFeed; + uint supplyCap; + string symbol; + uint totalSupply; + } + + struct CollateralAssetWithAccountState { + address collateralAsset; + uint allowance; + uint balance; + uint collateralFactor; + uint decimals; + string name; + uint liquidateCollateralFactor; + uint liquidationFactor; + uint price; + address priceFeed; + uint supplyCap; + string symbol; + uint totalSupply; + uint walletBalance; + } + + struct CometState { + BaseAsset baseAsset; + uint baseMinForRewards; + uint baseTrackingBorrowSpeed; + uint baseTrackingSupplySpeed; + uint borrowAPR; + CollateralAsset[] collateralAssets; + uint earnAPR; + uint totalBorrow; + uint totalBorrowPrincipal; + uint totalSupply; + uint totalSupplyPrincipal; + uint trackingIndexScale; + } + + struct CometStateWithAccountState { + BaseAssetWithAccountState baseAsset; + uint baseMinForRewards; + uint baseTrackingBorrowSpeed; + uint baseTrackingSupplySpeed; + uint borrowAPR; + uint bulkerAllowance; + CollateralAssetWithAccountState[] collateralAssets; + uint earnAPR; + uint totalBorrow; + uint totalBorrowPrincipal; + uint totalSupply; + uint totalSupplyPrincipal; + uint trackingIndexScale; + } + + function query(Comet comet) public view returns (CometState memory) { + uint numAssets = comet.numAssets(); + address baseToken = comet.baseToken(); + address baseTokenPriceFeed = comet.baseTokenPriceFeed(); + uint borrowMin = comet.baseBorrowMin(); + uint trackingIndexScale = comet.trackingIndexScale(); + uint baseTrackingSupplySpeed = comet.baseTrackingSupplySpeed(); + uint baseTrackingBorrowSpeed = comet.baseTrackingBorrowSpeed(); + uint baseMinForRewards = comet.baseMinForRewards(); + uint utilization = comet.getUtilization(); + uint totalSupply = comet.totalSupply(); + uint totalBorrow = comet.totalBorrow(); + Comet.TotalsBasic memory totalsBasic = comet.totalsBasic(); + uint borrowRatePerSecond = comet.getBorrowRate(utilization); + uint supplyRatePerSecond = comet.getSupplyRate(utilization); + + BaseAsset memory baseAsset = BaseAsset({ + baseAsset: baseToken, + symbol: ERC20(baseToken).symbol(), + decimals: ERC20(baseToken).decimals(), + minBorrow: borrowMin, + name: ERC20(baseToken).name(), + priceFeed: baseTokenPriceFeed, + price: comet.getPrice(baseTokenPriceFeed), + balanceOfComet: ERC20(baseToken).balanceOf(address(comet)) + }); + + CollateralAsset[] memory tokens = new CollateralAsset[](numAssets); + for (uint8 i = 0; i < numAssets; i++) { + tokens[i] = collateralInfo(comet, i); + } + + return + CometState({ + baseAsset: baseAsset, + baseMinForRewards: baseMinForRewards, + baseTrackingBorrowSpeed: baseTrackingBorrowSpeed, + baseTrackingSupplySpeed: baseTrackingSupplySpeed, + borrowAPR: borrowRatePerSecond * SECONDS_PER_YEAR, + collateralAssets: tokens, + earnAPR: supplyRatePerSecond * SECONDS_PER_YEAR, + totalBorrow: totalBorrow, + totalBorrowPrincipal: totalsBasic.totalBorrowBase, + totalSupply: totalSupply, + totalSupplyPrincipal: totalsBasic.totalSupplyBase, + trackingIndexScale: trackingIndexScale + }); + } + + function queryWithAccount( + Comet comet, + address payable account, + address payable bulker + ) public view returns (CometStateWithAccountState memory) { + CometState memory response = query(comet); + + uint baseAssetSupplyBalance = comet.balanceOf(account); + uint baseAssetBorrowBalance = comet.borrowBalanceOf(account); + + BaseAssetWithAccountState memory baseAsset = BaseAssetWithAccountState({ + baseAsset: response.baseAsset.baseAsset, + allowance: ERC20(response.baseAsset.baseAsset).allowance(account, address(comet)), + balance: baseAssetSupplyBalance - baseAssetBorrowBalance, + symbol: response.baseAsset.symbol, + decimals: response.baseAsset.decimals, + minBorrow: response.baseAsset.minBorrow, + name: response.baseAsset.name, + priceFeed: response.baseAsset.priceFeed, + price: response.baseAsset.price, + balanceOfComet: response.baseAsset.balanceOfComet, + walletBalance: ERC20(response.baseAsset.baseAsset).balanceOf(account) + }); + + CollateralAssetWithAccountState[] memory tokens = new CollateralAssetWithAccountState[]( + response.collateralAssets.length + ); + for (uint8 i = 0; i < response.collateralAssets.length; i++) { + tokens[i] = collateralInfoWithAccount(comet, response.collateralAssets[i], account); + } + + return + CometStateWithAccountState({ + baseAsset: baseAsset, + baseMinForRewards: response.baseMinForRewards, + baseTrackingBorrowSpeed: response.baseTrackingBorrowSpeed, + baseTrackingSupplySpeed: response.baseTrackingSupplySpeed, + borrowAPR: response.borrowAPR, + bulkerAllowance: comet.allowance(account, bulker), + collateralAssets: tokens, + earnAPR: response.earnAPR, + totalBorrow: response.totalBorrow, + totalBorrowPrincipal: response.totalBorrowPrincipal, + totalSupply: response.totalSupply, + totalSupplyPrincipal: response.totalSupplyPrincipal, + trackingIndexScale: response.trackingIndexScale + }); + } + + function collateralInfo(Comet comet, uint8 index) public view returns (CollateralAsset memory) { + Comet.AssetInfo memory assetInfo = comet.getAssetInfo(index); + + return + CollateralAsset({ + collateralAsset: assetInfo.asset, + collateralFactor: assetInfo.borrowCollateralFactor, + decimals: ERC20(assetInfo.asset).decimals(), + liquidateCollateralFactor: assetInfo.liquidateCollateralFactor, + liquidationFactor: assetInfo.liquidationFactor, + name: ERC20(assetInfo.asset).name(), + price: comet.getPrice(assetInfo.priceFeed), + priceFeed: assetInfo.priceFeed, + supplyCap: assetInfo.supplyCap, + symbol: ERC20(assetInfo.asset).symbol(), + totalSupply: comet.totalsCollateral(assetInfo.asset) + }); + } + + function collateralInfoWithAccount( + Comet comet, + CollateralAsset memory asset, + address payable account + ) public view returns (CollateralAssetWithAccountState memory) { + return + CollateralAssetWithAccountState({ + collateralAsset: asset.collateralAsset, + allowance: ERC20(asset.collateralAsset).allowance(account, address(comet)), + balance: comet.collateralBalanceOf(account, asset.collateralAsset), + collateralFactor: asset.collateralFactor, + decimals: asset.decimals, + liquidateCollateralFactor: asset.liquidateCollateralFactor, + liquidationFactor: asset.liquidationFactor, + name: asset.name, + price: asset.price, + priceFeed: asset.priceFeed, + supplyCap: asset.supplyCap, + symbol: asset.symbol, + totalSupply: asset.totalSupply, + walletBalance: ERC20(asset.collateralAsset).balanceOf(account) + }); + } +} diff --git a/web/helpers/Sleuth/CompoundV2Query.sol b/web/helpers/Sleuth/CompoundV2Query.sol index 93161ed..b682543 100644 --- a/web/helpers/Sleuth/CompoundV2Query.sol +++ b/web/helpers/Sleuth/CompoundV2Query.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.16; +import './CometQuery.sol'; + interface CToken { function comptroller() external returns (Comptroller); @@ -19,6 +21,8 @@ interface CToken { function borrowBalanceCurrent(address account) external returns (uint); function exchangeRateCurrent() external returns (uint); + + function underlying() external returns (address); } interface Comptroller { @@ -44,10 +48,10 @@ interface Comptroller { } interface PriceOracle { - function getUnderlyingPrice(CToken cToken) external view returns (uint); + function price(string memory price) external view returns (uint); } -contract CompoundV2Query { +contract CompoundV2Query is CometQuery { struct CTokenMetadata { address cToken; uint allowance; @@ -59,28 +63,47 @@ contract CompoundV2Query { uint price; } - function query( + struct QueryResponse { + uint migratorEnabled; + CTokenMetadata[] tokens; + CometStateWithAccountState cometState; + } + + struct CTokenRequest { + CToken cToken; + string priceOracleSymbol; + } + + function getMigratorData( Comptroller comptroller, - CToken[] calldata cTokens, + Comet comet, + CTokenRequest[] calldata cTokens, address payable account, address payable spender - ) external returns (CTokenMetadata[] memory) { + ) external returns (QueryResponse memory) { PriceOracle priceOracle = comptroller.oracle(); uint cTokenCount = cTokens.length; - CTokenMetadata[] memory res = new CTokenMetadata[](cTokenCount); + CTokenMetadata[] memory tokens = new CTokenMetadata[](cTokenCount); for (uint i = 0; i < cTokenCount; i++) { - res[i] = cTokenMetadata(comptroller, priceOracle, cTokens[i], account, spender); + tokens[i] = cTokenMetadata(comptroller, priceOracle, cTokens[i], account, spender); } - return res; + + return + QueryResponse({ + migratorEnabled: comet.allowance(account, spender), + tokens: tokens, + cometState: queryWithAccount(comet, account, payable(0)) + }); } function cTokenMetadata( Comptroller comptroller, PriceOracle priceOracle, - CToken cToken, + CTokenRequest memory cTokenRequest, address payable account, address payable spender ) public returns (CTokenMetadata memory) { + CToken cToken = cTokenRequest.cToken; (, uint collateralFactor) = comptroller.markets(address(cToken)); return @@ -92,7 +115,7 @@ contract CompoundV2Query { borrowBalance: cToken.borrowBalanceCurrent(account), collateralFactor: collateralFactor, exchangeRate: cToken.exchangeRateCurrent(), - price: priceOracle.getUnderlyingPrice(cToken) + price: priceOracle.price(cTokenRequest.priceOracleSymbol) }); } } diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json new file mode 100644 index 0000000..4fe4027 --- /dev/null +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json @@ -0,0 +1,4047 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "balanceOf(address)": "70a08231" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/AaveV2Query.sol": "AToken" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/AaveV2Query.sol": { + "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "urls": [ + "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", + "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + ], + "license": "UNLICENSED" + }, + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/AaveV2Query.sol", + "id": 288, + "exportedSymbols": { + "AToken": [ + 19 + ], + "AavePriceOracle": [ + 54 + ], + "AaveV2Query": [ + 287 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "DebtToken": [ + 27 + ], + "ERC20": [ + 630 + ], + "LendingPool": [ + 46 + ], + "LendingPoolAddressesProvider": [ + 34 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3454:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 2, + "nodeType": "ImportDirective", + "src": "65:26:0", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 288, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 19, + "nodeType": "ContractDefinition", + "src": "93:170:0", + "nodes": [ + { + "id": 11, + "nodeType": "FunctionDefinition", + "src": "114:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "123:9:0", + "parameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "owner", + "nameLocation": "141:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "133:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "spender", + "nameLocation": "156:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "148:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "132:32:0" + }, + "returnParameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "188:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "187:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 18, + "nodeType": "FunctionDefinition", + "src": "198:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "207:9:0", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "owner", + "nameLocation": "225:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "217:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "217:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "216:15:0" + }, + "returnParameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "255:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "254:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 19 + ], + "name": "AToken", + "nameLocation": "103:6:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 27, + "nodeType": "ContractDefinition", + "src": "265:89:0", + "nodes": [ + { + "id": 26, + "nodeType": "FunctionDefinition", + "src": "289:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "298:9:0", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "owner", + "nameLocation": "316:5:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "307:15:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "346:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:6:0" + }, + "scope": 27, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "DebtToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 27 + ], + "name": "DebtToken", + "nameLocation": "275:9:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 34, + "nodeType": "ContractDefinition", + "src": "356:111:0", + "nodes": [ + { + "id": 33, + "nodeType": "FunctionDefinition", + "src": "399:66:0", + "functionSelector": "fca513a8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriceOracle", + "nameLocation": "408:14:0", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:0" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "448:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 30, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29, + "name": "AavePriceOracle", + "nameLocations": [ + "448:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "448:15:0" + }, + "referencedDeclaration": 54, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "447:17:0" + }, + "scope": 34, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPoolAddressesProvider", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 34 + ], + "name": "LendingPoolAddressesProvider", + "nameLocation": "366:28:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 46, + "nodeType": "ContractDefinition", + "src": "469:489:0", + "nodes": [ + { + "id": 37, + "nodeType": "StructDefinition", + "src": "495:361:0", + "canonicalName": "LendingPool.ReserveConfigurationMap", + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "data", + "nameLocation": "847:4:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "839:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ReserveConfigurationMap", + "nameLocation": "502:23:0", + "scope": 46, + "visibility": "public" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "860:96:0", + "functionSelector": "c44b11f7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getConfiguration", + "nameLocation": "869:16:0", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "asset", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "885:15:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "924:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 42, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 41, + "name": "ReserveConfigurationMap", + "nameLocations": [ + "924:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "924:23:0" + }, + "referencedDeclaration": 37, + "src": "924:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "src": "923:32:0" + }, + "scope": 46, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 46 + ], + "name": "LendingPool", + "nameLocation": "479:11:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 54, + "nodeType": "ContractDefinition", + "src": "960:99:0", + "nodes": [ + { + "id": 53, + "nodeType": "FunctionDefinition", + "src": "990:67:0", + "functionSelector": "b3596f07", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetPrice", + "nameLocation": "999:13:0", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "asset", + "nameLocation": "1021:5:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1013:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1012:15:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1051:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:6:0" + }, + "scope": 54, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AavePriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 54 + ], + "name": "AavePriceOracle", + "nameLocation": "970:15:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 287, + "nodeType": "ContractDefinition", + "src": "1061:2431:0", + "nodes": [ + { + "id": 75, + "nodeType": "StructDefinition", + "src": "1100:248:0", + "canonicalName": "AaveV2Query.ATokenMetadata", + "members": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1136:6:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1128:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1128:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1156:15:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1148:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1185:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1177:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1177:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1213:9:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1208:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1233:7:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1228:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1228:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "stableDebtBalance", + "nameLocation": "1251:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1246:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1246:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "variableDebtBalance", + "nameLocation": "1279:19:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1274:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "1309:13:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1304:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "priceInETH", + "nameLocation": "1333:10:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1328:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1328:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenMetadata", + "nameLocation": "1107:14:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 87, + "nodeType": "StructDefinition", + "src": "1352:149:0", + "canonicalName": "AaveV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1384:15:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1379:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1422:6:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1405:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 79, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 78, + "name": "ATokenMetadata", + "nameLocations": [ + "1405:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "1405:14:0" + }, + "referencedDeclaration": 75, + "src": "1405:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 80, + "nodeType": "ArrayTypeName", + "src": "1405:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1461:10:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1434:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 83, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 82, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1434:26:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1434:26:0" + }, + "referencedDeclaration": 789, + "src": "1434:26:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "usdcPriceInETH", + "nameLocation": "1482:14:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1477:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 85, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1359:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 97, + "nodeType": "StructDefinition", + "src": "1505:109:0", + "canonicalName": "AaveV2Query.ATokenRequest", + "members": [ + { + "constant": false, + "id": 90, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1539:6:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1532:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 89, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 88, + "name": "AToken", + "nameLocations": [ + "1532:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "1532:6:0" + }, + "referencedDeclaration": 19, + "src": "1532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1561:15:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1551:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 92, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 91, + "name": "DebtToken", + "nameLocations": [ + "1551:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1551:9:0" + }, + "referencedDeclaration": 27, + "src": "1551:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1592:17:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1582:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 95, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 94, + "name": "DebtToken", + "nameLocations": [ + "1582:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1582:9:0" + }, + "referencedDeclaration": 27, + "src": "1582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenRequest", + "nameLocation": "1512:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 194, + "nodeType": "FunctionDefinition", + "src": "1618:845:0", + "body": { + "id": 193, + "nodeType": "Block", + "src": "1895:568:0", + "statements": [ + { + "assignments": [ + 124 + ], + "declarations": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1917:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1901:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 122, + "name": "AavePriceOracle", + "nameLocations": [ + "1901:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "1901:15:0" + }, + "referencedDeclaration": 54, + "src": "1901:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 128, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 125, + "name": "provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "1931:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:14:0", + "memberName": "getPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "1931:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", + "typeString": "function () view external returns (contract AavePriceOracle)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1901:55:0" + }, + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "aTokenCount", + "nameLocation": "1967:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 133, + "initialValue": { + "expression": { + "id": 131, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "1981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1989:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1981:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:33:0" + }, + { + "assignments": [ + 138 + ], + "declarations": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2025:6:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "2001:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 135, + "name": "ATokenMetadata", + "nameLocations": [ + "2001:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2001:14:0" + }, + "referencedDeclaration": 75, + "src": "2001:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 137, + "nodeType": "ArrayTypeName", + "src": "2001:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 145, + "initialValue": { + "arguments": [ + { + "id": 143, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2055:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2034:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 139, + "name": "ATokenMetadata", + "nameLocations": [ + "2038:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2038:14:0" + }, + "referencedDeclaration": 75, + "src": "2038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 141, + "nodeType": "ArrayTypeName", + "src": "2038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2034:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:66:0" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "2112:90:0", + "statements": [ + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 156, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "id": 158, + "indexExpression": { + "id": 157, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2127:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2120:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 160, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "2147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + { + "id": 161, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2153:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + { + "baseExpression": { + "id": 162, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 164, + "indexExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2166:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + } + }, + { + "id": 165, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 166, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 159, + "name": "aTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "2132:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" + } + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "src": "2120:75:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2120:75:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2090:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 151, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2090:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 171, + "initializationExpression": { + "assignments": [ + 147 + ], + "declarations": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "i", + "nameLocation": "2083:1:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "2078:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2078:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 149, + "initialValue": { + "hexValue": "30", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2078:10:0" + }, + "loopExpression": { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2107:3:0", + "subExpression": { + "id": 153, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2107:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2107:3:0" + }, + "nodeType": "ForStatement", + "src": "2073:129:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 175, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 176, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 173, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2268:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2262:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 178, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2313:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2358:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 181, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2382:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2374:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 179, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2341:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + { + "arguments": [ + { + "id": 189, + "name": "usdcAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2437:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 187, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2423:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "2411:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2411:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 172, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "2221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", + "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2245:15:0", + "2305:6:0", + "2329:10:0", + "2395:14:0" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState", + "usdcPriceInETH" + ], + "nodeType": "FunctionCall", + "src": "2221:237:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 121, + "id": 192, + "nodeType": "Return", + "src": "2208:250:0" + } + ] + }, + "functionSelector": "ec7d7f7a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMigratorData", + "nameLocation": "1627:15:0", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "provider", + "nameLocation": "1677:8:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1648:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "LendingPoolAddressesProvider", + "nameLocations": [ + "1648:28:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "1648:28:0" + }, + "referencedDeclaration": 34, + "src": "1648:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "pool", + "nameLocation": "1703:4:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1691:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "LendingPool", + "nameLocations": [ + "1691:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1691:11:0" + }, + "referencedDeclaration": 46, + "src": "1691:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "comet", + "nameLocation": "1719:5:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1713:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 104, + "name": "Comet", + "nameLocations": [ + "1713:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "1713:5:0" + }, + "referencedDeclaration": 598, + "src": "1713:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "aTokens", + "nameLocation": "1755:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1730:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 107, + "name": "ATokenRequest", + "nameLocations": [ + "1730:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "1730:13:0" + }, + "referencedDeclaration": 97, + "src": "1730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "id": 109, + "nodeType": "ArrayTypeName", + "src": "1730:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "1784:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1768:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1813:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1797:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1797:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "usdcAddress", + "nameLocation": "1834:11:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1826:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1642:207:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1873:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + }, + "typeName": { + "id": 119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 118, + "name": "QueryResponse", + "nameLocations": [ + "1873:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "1873:13:0" + }, + "referencedDeclaration": 87, + "src": "1873:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "1872:22:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 286, + "nodeType": "FunctionDefinition", + "src": "2467:1023:0", + "body": { + "id": 285, + "nodeType": "Block", + "src": "2692:798:0", + "statements": [ + { + "assignments": [ + 215 + ], + "declarations": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "2705:6:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2698:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 213, + "name": "AToken", + "nameLocations": [ + "2698:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "2698:6:0" + }, + "referencedDeclaration": 19, + "src": "2698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "expression": { + "id": 216, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2728:6:0", + "memberName": "aToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:36:0" + }, + { + "assignments": [ + 221 + ], + "declarations": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "2750:15:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2740:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 219, + "name": "DebtToken", + "nameLocations": [ + "2740:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2740:9:0" + }, + "referencedDeclaration": 27, + "src": "2740:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 224, + "initialValue": { + "expression": { + "id": 222, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2768:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2782:15:0", + "memberName": "stableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 93, + "src": "2768:29:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2740:57:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "2813:17:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2803:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "DebtToken", + "nameLocations": [ + "2803:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2803:9:0" + }, + "referencedDeclaration": 27, + "src": "2803:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "expression": { + "id": 228, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2833:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2847:17:0", + "memberName": "variableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2833:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2803:61:0" + }, + { + "assignments": [ + 235 + ], + "declarations": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "2914:13:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2871:56:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 234, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 233, + "name": "LendingPool.ReserveConfigurationMap", + "nameLocations": [ + "2871:11:0", + "2883:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "2871:35:0" + }, + "referencedDeclaration": 37, + "src": "2871:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 240, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2960:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:0", + "typeDescriptions": {} + } + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2952:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 236, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "2930:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2935:16:0", + "memberName": "getConfiguration", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2930:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", + "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2871:97:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 247, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3029:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3021:7:0", + "typeDescriptions": {} + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3021:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 251, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3071:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3063:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3063:7:0", + "typeDescriptions": {} + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3063:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 255, + "name": "variableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3124:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3116:7:0", + "typeDescriptions": {} + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3116:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 259, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 260, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 257, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3163:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3163:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3233:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 262, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3216:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3223:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "3216:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3216:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 266, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3270:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3286:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3270:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3270:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 272, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 270, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3335:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3335:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 274, + "name": "configuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "3394:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3408:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3394:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 280, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3460:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:0", + "typeDescriptions": {} + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3460:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 276, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3434:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3446:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "3434:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3434:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 244, + "name": "ATokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2988:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", + "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3013:6:0", + "3046:15:0", + "3097:17:0", + "3152:9:0", + "3207:7:0", + "3251:17:0", + "3314:19:0", + "3379:13:0", + "3422:10:0" + ], + "names": [ + "aToken", + "stableDebtToken", + "variableDebtToken", + "allowance", + "balance", + "stableDebtBalance", + "variableDebtBalance", + "configuration", + "priceInETH" + ], + "nodeType": "FunctionCall", + "src": "2988:497:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "functionReturnParameters": 212, + "id": 284, + "nodeType": "Return", + "src": "2975:510:0" + } + ] + }, + "functionSelector": "0abe0bec", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "aTokenMetadata", + "nameLocation": "2476:14:0", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "pool", + "nameLocation": "2508:4:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2496:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 196, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 195, + "name": "LendingPool", + "nameLocations": [ + "2496:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "2496:11:0" + }, + "referencedDeclaration": 46, + "src": "2496:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2534:11:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2518:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 199, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 198, + "name": "AavePriceOracle", + "nameLocations": [ + "2518:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "2518:15:0" + }, + "referencedDeclaration": 54, + "src": "2518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "aTokenRequest", + "nameLocation": "2572:13:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2551:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + }, + "typeName": { + "id": 202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 201, + "name": "ATokenRequest", + "nameLocations": [ + "2551:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "2551:13:0" + }, + "referencedDeclaration": 97, + "src": "2551:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "account", + "nameLocation": "2607:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2591:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2591:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2636:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2620:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2490:157:0" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2669:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + }, + "typeName": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "ATokenMetadata", + "nameLocations": [ + "2669:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2669:14:0" + }, + "referencedDeclaration": 75, + "src": "2669:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2668:23:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 55, + "name": "CometQuery", + "nameLocations": [ + "1085:10:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1085:10:0" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1085:10:0" + } + ], + "canonicalName": "AaveV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 287, + 1268 + ], + "name": "AaveV2Query", + "nameLocation": "1070:11:0", + "scope": 288, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json new file mode 100644 index 0000000..7a23e1e --- /dev/null +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json @@ -0,0 +1,3998 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "getAssetPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "getAssetPrice(address)": "b3596f07" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getAssetPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AavePriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAssetPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/AaveV2Query.sol": "AavePriceOracle" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/AaveV2Query.sol": { + "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "urls": [ + "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", + "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + ], + "license": "UNLICENSED" + }, + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/AaveV2Query.sol", + "id": 288, + "exportedSymbols": { + "AToken": [ + 19 + ], + "AavePriceOracle": [ + 54 + ], + "AaveV2Query": [ + 287 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "DebtToken": [ + 27 + ], + "ERC20": [ + 630 + ], + "LendingPool": [ + 46 + ], + "LendingPoolAddressesProvider": [ + 34 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3454:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 2, + "nodeType": "ImportDirective", + "src": "65:26:0", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 288, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 19, + "nodeType": "ContractDefinition", + "src": "93:170:0", + "nodes": [ + { + "id": 11, + "nodeType": "FunctionDefinition", + "src": "114:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "123:9:0", + "parameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "owner", + "nameLocation": "141:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "133:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "spender", + "nameLocation": "156:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "148:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "132:32:0" + }, + "returnParameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "188:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "187:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 18, + "nodeType": "FunctionDefinition", + "src": "198:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "207:9:0", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "owner", + "nameLocation": "225:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "217:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "217:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "216:15:0" + }, + "returnParameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "255:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "254:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 19 + ], + "name": "AToken", + "nameLocation": "103:6:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 27, + "nodeType": "ContractDefinition", + "src": "265:89:0", + "nodes": [ + { + "id": 26, + "nodeType": "FunctionDefinition", + "src": "289:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "298:9:0", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "owner", + "nameLocation": "316:5:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "307:15:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "346:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:6:0" + }, + "scope": 27, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "DebtToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 27 + ], + "name": "DebtToken", + "nameLocation": "275:9:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 34, + "nodeType": "ContractDefinition", + "src": "356:111:0", + "nodes": [ + { + "id": 33, + "nodeType": "FunctionDefinition", + "src": "399:66:0", + "functionSelector": "fca513a8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriceOracle", + "nameLocation": "408:14:0", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:0" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "448:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 30, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29, + "name": "AavePriceOracle", + "nameLocations": [ + "448:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "448:15:0" + }, + "referencedDeclaration": 54, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "447:17:0" + }, + "scope": 34, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPoolAddressesProvider", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 34 + ], + "name": "LendingPoolAddressesProvider", + "nameLocation": "366:28:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 46, + "nodeType": "ContractDefinition", + "src": "469:489:0", + "nodes": [ + { + "id": 37, + "nodeType": "StructDefinition", + "src": "495:361:0", + "canonicalName": "LendingPool.ReserveConfigurationMap", + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "data", + "nameLocation": "847:4:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "839:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ReserveConfigurationMap", + "nameLocation": "502:23:0", + "scope": 46, + "visibility": "public" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "860:96:0", + "functionSelector": "c44b11f7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getConfiguration", + "nameLocation": "869:16:0", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "asset", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "885:15:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "924:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 42, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 41, + "name": "ReserveConfigurationMap", + "nameLocations": [ + "924:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "924:23:0" + }, + "referencedDeclaration": 37, + "src": "924:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "src": "923:32:0" + }, + "scope": 46, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 46 + ], + "name": "LendingPool", + "nameLocation": "479:11:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 54, + "nodeType": "ContractDefinition", + "src": "960:99:0", + "nodes": [ + { + "id": 53, + "nodeType": "FunctionDefinition", + "src": "990:67:0", + "functionSelector": "b3596f07", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetPrice", + "nameLocation": "999:13:0", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "asset", + "nameLocation": "1021:5:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1013:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1012:15:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1051:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:6:0" + }, + "scope": 54, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AavePriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 54 + ], + "name": "AavePriceOracle", + "nameLocation": "970:15:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 287, + "nodeType": "ContractDefinition", + "src": "1061:2431:0", + "nodes": [ + { + "id": 75, + "nodeType": "StructDefinition", + "src": "1100:248:0", + "canonicalName": "AaveV2Query.ATokenMetadata", + "members": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1136:6:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1128:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1128:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1156:15:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1148:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1185:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1177:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1177:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1213:9:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1208:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1233:7:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1228:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1228:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "stableDebtBalance", + "nameLocation": "1251:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1246:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1246:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "variableDebtBalance", + "nameLocation": "1279:19:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1274:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "1309:13:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1304:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "priceInETH", + "nameLocation": "1333:10:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1328:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1328:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenMetadata", + "nameLocation": "1107:14:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 87, + "nodeType": "StructDefinition", + "src": "1352:149:0", + "canonicalName": "AaveV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1384:15:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1379:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1422:6:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1405:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 79, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 78, + "name": "ATokenMetadata", + "nameLocations": [ + "1405:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "1405:14:0" + }, + "referencedDeclaration": 75, + "src": "1405:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 80, + "nodeType": "ArrayTypeName", + "src": "1405:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1461:10:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1434:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 83, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 82, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1434:26:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1434:26:0" + }, + "referencedDeclaration": 789, + "src": "1434:26:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "usdcPriceInETH", + "nameLocation": "1482:14:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1477:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 85, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1359:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 97, + "nodeType": "StructDefinition", + "src": "1505:109:0", + "canonicalName": "AaveV2Query.ATokenRequest", + "members": [ + { + "constant": false, + "id": 90, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1539:6:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1532:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 89, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 88, + "name": "AToken", + "nameLocations": [ + "1532:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "1532:6:0" + }, + "referencedDeclaration": 19, + "src": "1532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1561:15:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1551:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 92, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 91, + "name": "DebtToken", + "nameLocations": [ + "1551:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1551:9:0" + }, + "referencedDeclaration": 27, + "src": "1551:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1592:17:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1582:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 95, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 94, + "name": "DebtToken", + "nameLocations": [ + "1582:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1582:9:0" + }, + "referencedDeclaration": 27, + "src": "1582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenRequest", + "nameLocation": "1512:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 194, + "nodeType": "FunctionDefinition", + "src": "1618:845:0", + "body": { + "id": 193, + "nodeType": "Block", + "src": "1895:568:0", + "statements": [ + { + "assignments": [ + 124 + ], + "declarations": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1917:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1901:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 122, + "name": "AavePriceOracle", + "nameLocations": [ + "1901:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "1901:15:0" + }, + "referencedDeclaration": 54, + "src": "1901:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 128, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 125, + "name": "provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "1931:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:14:0", + "memberName": "getPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "1931:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", + "typeString": "function () view external returns (contract AavePriceOracle)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1901:55:0" + }, + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "aTokenCount", + "nameLocation": "1967:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 133, + "initialValue": { + "expression": { + "id": 131, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "1981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1989:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1981:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:33:0" + }, + { + "assignments": [ + 138 + ], + "declarations": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2025:6:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "2001:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 135, + "name": "ATokenMetadata", + "nameLocations": [ + "2001:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2001:14:0" + }, + "referencedDeclaration": 75, + "src": "2001:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 137, + "nodeType": "ArrayTypeName", + "src": "2001:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 145, + "initialValue": { + "arguments": [ + { + "id": 143, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2055:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2034:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 139, + "name": "ATokenMetadata", + "nameLocations": [ + "2038:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2038:14:0" + }, + "referencedDeclaration": 75, + "src": "2038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 141, + "nodeType": "ArrayTypeName", + "src": "2038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2034:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:66:0" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "2112:90:0", + "statements": [ + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 156, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "id": 158, + "indexExpression": { + "id": 157, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2127:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2120:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 160, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "2147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + { + "id": 161, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2153:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + { + "baseExpression": { + "id": 162, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 164, + "indexExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2166:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + } + }, + { + "id": 165, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 166, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 159, + "name": "aTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "2132:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" + } + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "src": "2120:75:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2120:75:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2090:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 151, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2090:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 171, + "initializationExpression": { + "assignments": [ + 147 + ], + "declarations": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "i", + "nameLocation": "2083:1:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "2078:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2078:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 149, + "initialValue": { + "hexValue": "30", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2078:10:0" + }, + "loopExpression": { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2107:3:0", + "subExpression": { + "id": 153, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2107:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2107:3:0" + }, + "nodeType": "ForStatement", + "src": "2073:129:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 175, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 176, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 173, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2268:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2262:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 178, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2313:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2358:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 181, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2382:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2374:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 179, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2341:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + { + "arguments": [ + { + "id": 189, + "name": "usdcAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2437:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 187, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2423:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "2411:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2411:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 172, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "2221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", + "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2245:15:0", + "2305:6:0", + "2329:10:0", + "2395:14:0" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState", + "usdcPriceInETH" + ], + "nodeType": "FunctionCall", + "src": "2221:237:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 121, + "id": 192, + "nodeType": "Return", + "src": "2208:250:0" + } + ] + }, + "functionSelector": "ec7d7f7a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMigratorData", + "nameLocation": "1627:15:0", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "provider", + "nameLocation": "1677:8:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1648:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "LendingPoolAddressesProvider", + "nameLocations": [ + "1648:28:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "1648:28:0" + }, + "referencedDeclaration": 34, + "src": "1648:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "pool", + "nameLocation": "1703:4:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1691:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "LendingPool", + "nameLocations": [ + "1691:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1691:11:0" + }, + "referencedDeclaration": 46, + "src": "1691:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "comet", + "nameLocation": "1719:5:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1713:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 104, + "name": "Comet", + "nameLocations": [ + "1713:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "1713:5:0" + }, + "referencedDeclaration": 598, + "src": "1713:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "aTokens", + "nameLocation": "1755:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1730:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 107, + "name": "ATokenRequest", + "nameLocations": [ + "1730:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "1730:13:0" + }, + "referencedDeclaration": 97, + "src": "1730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "id": 109, + "nodeType": "ArrayTypeName", + "src": "1730:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "1784:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1768:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1813:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1797:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1797:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "usdcAddress", + "nameLocation": "1834:11:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1826:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1642:207:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1873:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + }, + "typeName": { + "id": 119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 118, + "name": "QueryResponse", + "nameLocations": [ + "1873:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "1873:13:0" + }, + "referencedDeclaration": 87, + "src": "1873:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "1872:22:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 286, + "nodeType": "FunctionDefinition", + "src": "2467:1023:0", + "body": { + "id": 285, + "nodeType": "Block", + "src": "2692:798:0", + "statements": [ + { + "assignments": [ + 215 + ], + "declarations": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "2705:6:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2698:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 213, + "name": "AToken", + "nameLocations": [ + "2698:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "2698:6:0" + }, + "referencedDeclaration": 19, + "src": "2698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "expression": { + "id": 216, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2728:6:0", + "memberName": "aToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:36:0" + }, + { + "assignments": [ + 221 + ], + "declarations": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "2750:15:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2740:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 219, + "name": "DebtToken", + "nameLocations": [ + "2740:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2740:9:0" + }, + "referencedDeclaration": 27, + "src": "2740:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 224, + "initialValue": { + "expression": { + "id": 222, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2768:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2782:15:0", + "memberName": "stableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 93, + "src": "2768:29:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2740:57:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "2813:17:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2803:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "DebtToken", + "nameLocations": [ + "2803:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2803:9:0" + }, + "referencedDeclaration": 27, + "src": "2803:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "expression": { + "id": 228, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2833:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2847:17:0", + "memberName": "variableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2833:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2803:61:0" + }, + { + "assignments": [ + 235 + ], + "declarations": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "2914:13:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2871:56:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 234, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 233, + "name": "LendingPool.ReserveConfigurationMap", + "nameLocations": [ + "2871:11:0", + "2883:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "2871:35:0" + }, + "referencedDeclaration": 37, + "src": "2871:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 240, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2960:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:0", + "typeDescriptions": {} + } + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2952:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 236, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "2930:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2935:16:0", + "memberName": "getConfiguration", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2930:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", + "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2871:97:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 247, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3029:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3021:7:0", + "typeDescriptions": {} + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3021:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 251, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3071:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3063:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3063:7:0", + "typeDescriptions": {} + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3063:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 255, + "name": "variableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3124:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3116:7:0", + "typeDescriptions": {} + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3116:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 259, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 260, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 257, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3163:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3163:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3233:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 262, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3216:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3223:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "3216:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3216:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 266, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3270:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3286:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3270:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3270:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 272, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 270, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3335:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3335:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 274, + "name": "configuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "3394:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3408:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3394:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 280, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3460:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:0", + "typeDescriptions": {} + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3460:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 276, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3434:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3446:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "3434:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3434:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 244, + "name": "ATokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2988:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", + "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3013:6:0", + "3046:15:0", + "3097:17:0", + "3152:9:0", + "3207:7:0", + "3251:17:0", + "3314:19:0", + "3379:13:0", + "3422:10:0" + ], + "names": [ + "aToken", + "stableDebtToken", + "variableDebtToken", + "allowance", + "balance", + "stableDebtBalance", + "variableDebtBalance", + "configuration", + "priceInETH" + ], + "nodeType": "FunctionCall", + "src": "2988:497:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "functionReturnParameters": 212, + "id": 284, + "nodeType": "Return", + "src": "2975:510:0" + } + ] + }, + "functionSelector": "0abe0bec", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "aTokenMetadata", + "nameLocation": "2476:14:0", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "pool", + "nameLocation": "2508:4:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2496:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 196, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 195, + "name": "LendingPool", + "nameLocations": [ + "2496:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "2496:11:0" + }, + "referencedDeclaration": 46, + "src": "2496:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2534:11:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2518:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 199, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 198, + "name": "AavePriceOracle", + "nameLocations": [ + "2518:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "2518:15:0" + }, + "referencedDeclaration": 54, + "src": "2518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "aTokenRequest", + "nameLocation": "2572:13:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2551:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + }, + "typeName": { + "id": 202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 201, + "name": "ATokenRequest", + "nameLocations": [ + "2551:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "2551:13:0" + }, + "referencedDeclaration": 97, + "src": "2551:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "account", + "nameLocation": "2607:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2591:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2591:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2636:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2620:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2490:157:0" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2669:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + }, + "typeName": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "ATokenMetadata", + "nameLocations": [ + "2669:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2669:14:0" + }, + "referencedDeclaration": 75, + "src": "2669:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2668:23:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 55, + "name": "CometQuery", + "nameLocations": [ + "1085:10:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1085:10:0" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1085:10:0" + } + ], + "canonicalName": "AaveV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 287, + 1268 + ], + "name": "AaveV2Query", + "nameLocation": "1070:11:0", + "scope": 288, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json new file mode 100644 index 0000000..b1be04a --- /dev/null +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json @@ -0,0 +1,6121 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "contract LendingPool", + "name": "pool", + "type": "address" + }, + { + "internalType": "contract AavePriceOracle", + "name": "priceOracle", + "type": "address" + }, + { + "components": [ + { + "internalType": "contract AToken", + "name": "aToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "variableDebtToken", + "type": "address" + } + ], + "internalType": "struct AaveV2Query.ATokenRequest", + "name": "aTokenRequest", + "type": "tuple" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "name": "aTokenMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "aToken", + "type": "address" + }, + { + "internalType": "address", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "address", + "name": "variableDebtToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "variableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "configuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "priceInETH", + "type": "uint256" + } + ], + "internalType": "struct AaveV2Query.ATokenMetadata", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ], + "name": "collateralInfo", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset", + "name": "asset", + "type": "tuple" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + } + ], + "name": "collateralInfoWithAccount", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract LendingPoolAddressesProvider", + "name": "provider", + "type": "address" + }, + { + "internalType": "contract LendingPool", + "name": "pool", + "type": "address" + }, + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "components": [ + { + "internalType": "contract AToken", + "name": "aToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "variableDebtToken", + "type": "address" + } + ], + "internalType": "struct AaveV2Query.ATokenRequest[]", + "name": "aTokens", + "type": "tuple[]" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + }, + { + "internalType": "address", + "name": "usdcAddress", + "type": "address" + } + ], + "name": "getMigratorData", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "migratorEnabled", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "aToken", + "type": "address" + }, + { + "internalType": "address", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "address", + "name": "variableDebtToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "variableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "configuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "priceInETH", + "type": "uint256" + } + ], + "internalType": "struct AaveV2Query.ATokenMetadata[]", + "name": "tokens", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "cometState", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "usdcPriceInETH", + "type": "uint256" + } + ], + "internalType": "struct AaveV2Query.QueryResponse", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + } + ], + "name": "query", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "internalType": "struct CometQuery.BaseAsset", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "bulker", + "type": "address" + } + ], + "name": "queryWithAccount", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x6080806040523461001657612cac908161001c8239f35b600080fdfe61020080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461104f575080635346cc1914610bdb578063c2815c0b14610aa0578063cbe293fa14610a54578063d4fc9fc6146108cd5763ec7d7f7a1461006257600080fd5b346106435760e0366003190112610643576004356001600160a01b03811681036106435761008e611106565b61009661125b565b6001600160401b038060643511610643573660236064350112156106435760643560040135116106435736602460606064356004013502606435010111610643576084356001600160a01b03811690036106435760049060206100f761122f565b94610100611245565b60c052600060606040516101138161111c565b828152818582015261012361164b565b6040820152015260405193848092631f94a27560e31b825260018060a01b03165afa91821561065057600092610889575b50610164606435600401356116f8565b9261017260405194856111fa565b60046064350135808552601f1990610189906116f8565b0160005b81811061087257505060005b6064356004013581106107c7575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529094166024850152602084806044810103816001600160a01b0385165afa93841561065057600094610793575b506101fd61164b565b5061020781611bdd565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829086165afa90811561065057600091610761575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106505760009161072f575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152858116602483015290911690602081604481855afa801561065057600060a0526106fc575b5082828103116106e657602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106505760009b6106b2575b5061035e604051806101005261116e565b610100515260a05160206101005101520360406101005101526060610100510152608061010051015260a061010051015260c061010051015260e06101005101526101008051015261012061010051015261014061010051015260a0608051015151936103ca856116f8565b946103d860405196876111fa565b8086526103e7601f19916116f8565b0160005b81811061069b57505060005b60a06080510151805160ff83161015610450579061042a61044b926104236084359160ff851690611754565b5186612a5a565b61043760ff831689611754565b5261044560ff821688611754565b50611bb3565b6103f7565b505093909160805160208101519260408201519160446020608060608401519301519760405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106505760009161065c575b50906024966020959493926080519360c08501519060e08601519261010087015194610120880151966101606101408a015199015199604080519e8f906104fa82611152565b6101005182528f820152015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526040519384809263b3596f0760e01b825260018060a01b0360c05116600483015260018060a01b03165afa91821561065057600092610617575b50604051936105858561111c565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f65750505082936105eb9151601f198583030160608601526113d2565b905160808301520390f35b90919560206101208261060c6001948b51611271565b0197019291016105c9565b9091506020813d602011610648575b81610633602093836111fa565b8101031261064357519038610577565b600080fd5b3d9150610626565b6040513d6000823e3d90fd5b9493929190506020853d602011610693575b8161067b602093836111fa565b810103126106435793519293919290919060246104b4565b3d915061066e565b6020906106a6612679565b82828a010152016103eb565b909a506020813d6020116106de575b816106ce602093836111fa565b810103126106435751993861034d565b3d91506106c1565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610727575b81610715602093836111fa565b81010312610643575160a052386102cd565b3d9150610708565b90506020813d602011610759575b8161074a602093836111fa565b81010312610643575138610283565b3d915061073d565b90506020813d60201161078b575b8161077c602093836111fa565b81010312610643575138610246565b3d915061076f565b9093506020813d6020116107bf575b816107af602093836111fa565b81010312610643575192386101f4565b3d91506107a2565b60606064358282020136036023190112610643576040516107e781611137565b6064356060830201602401356001600160a01b03811690036106435760643560608302016024810135825261084b9188916108249060440161121b565b602082015261083b6064606086028135010161121b565b604082015260843590878661177e565b6108558287611754565b526108608186611754565b5060001981146106e657600101610199565b60209061087d61170f565b8282890101520161018d565b9091506020813d6020116108c5575b816108a5602093836111fa565b8101031261064357516001600160a01b0381168103610643579038610154565b3d9150610898565b3461064357602080600319360112610643576108ef6108ea6110f0565b611bdd565b906040519080825282519261018090818385015261098560018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610958610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a27578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a44838f8690600196030187528d516115b6565b9b019301930191949392906109db565b3461064357604036600319011261064357610a6d6110f0565b6024359060ff8216820361064357610a9c91610a88916126f7565b6040519182916020835260208301906115b6565b0390f35b346106435760031960603682011261064357610aba6110f0565b602435906001600160401b039283831161064357610160809184360301126106435760405190810181811085821117610bc557604052610afc8360040161121b565b81526024830135602082015260448301356040820152606483013584811161064357610b2e906004369186010161156f565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b5d60e4840161121b565b60e082015261010483013561010082015261012483013593841161064357610144610bb193610b95610a9c966004369184010161156f565b6101208401520135610140820152610bab61125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461064357606036600319011261064357610bf46110f0565b610bfc611106565b90610c0561125b565b610c0d61164b565b50610c1782611bdd565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829088165afa9081156106505760009161101d575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829089165afa90811561065057600091610feb575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152878116602483015290911690602081604481855afa90811561065057600091610fb9575b5083838103116106e657879386519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156106505760009c610f85575b50610d626040518060e05261116e565b60e05152602060e051015203604060e0510152606060e0510152608060e051015260a060e051015260c060e051015260e08051015261010060e051015261012060e051015261014060e051015260a082019283515191610dc1836116f8565b92610dcf60405194856111fa565b808452610dde601f19916116f8565b0160005b818110610f6e57505060005b855180519060ff831691821015610e325781610e1c8a610e15610e2d969561044595611754565b5188612a5a565b610e268289611754565b5286611754565b610dee565b610e89868589888d6020830151946020604085015195606086015194608087015194604051809b81948293636eb1769f60e11b84526004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa90811561065057600091610f38575b610a9c975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610ede8d611152565b60e0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906113d2565b90506020873d602011610f66575b81610f53602093836111fa565b8101031261064357610a9c965190610ea5565b3d9150610f46565b602090610f79612679565b82828801015201610de2565b909b506020813d602011610fb1575b81610fa1602093836111fa565b8101031261064357519a38610d52565b3d9150610f94565b90506020813d602011610fe3575b81610fd4602093836111fa565b81010312610643575188610cd4565b3d9150610fc7565b90506020813d602011611015575b81611006602093836111fa565b81010312610643575186610c8f565b3d9150610ff9565b90506020813d602011611047575b81611038602093836111fa565b81010312610643575185610c54565b3d915061102b565b346106435760e0366003190112610643576110686110f0565b6001600160a01b039060243582811681036106435760603660431901126106435761109284611137565b60443583811681036106435784526064358381168103610643576020850152608435928316830361064357836110e19360406101209601526110d261122f565b916110db611245565b9361177e565b6110ee6040518092611271565bf35b600435906001600160a01b038216820361064357565b602435906001600160a01b038216820361064357565b608081019081106001600160401b03821117610bc557604052565b606081019081106001600160401b03821117610bc557604052565b6101a081019081106001600160401b03821117610bc557604052565b61016081019081106001600160401b03821117610bc557604052565b61012081019081106001600160401b03821117610bc557604052565b61018081019081106001600160401b03821117610bc557604052565b61010081019081106001600160401b03821117610bc557604052565b6101c081019081106001600160401b03821117610bc557604052565b90601f801991011681019081106001600160401b03821117610bc557604052565b35906001600160a01b038216820361064357565b60a435906001600160a01b038216820361064357565b60c435906001600160a01b038216820361064357565b604435906001600160a01b038216820361064357565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161144461016093846102608801526103008701906112f6565b9060e083015116610280860152610100808301516102a087015261147c610120928385015161019f19898303016102c08a01526112f6565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115255750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b84806115448f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bc557601f01601f191660200190565b81601f820112156106435780359061158682611554565b9261159460405194856111fa565b8284526020838301011161064357816000926020809301838601378301015290565b9061163d60018060a01b0380845116835260208401516020840152604084015160408401526115f460608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b6040519061165882611152565b604051610180836116688361116e565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b6001600160401b038111610bc55760051b60200190565b6040519061171c8261118a565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117685760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361178b61170f565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065057600095611a41575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561065057600092611a0d575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610650576000946119d9575b506040516370a0823160e01b815287810186905294602086602481855afa958615610650576000966119a5575b50604051906370a0823160e01b825288820152602081602481855afa968715610650578a9160009861196d575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065057600098611936575b50604051986119088a61118a565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611965575b81611951602093836111fa565b8101031261196257505196386118fa565b80fd5b3d9150611944565b9150966020823d60201161199d575b81611989602093836111fa565b8101031261196257505195899060246118be565b3d915061197c565b90956020823d6020116119d1575b816119c0602093836111fa565b810103126119625750519438611891565b3d91506119b3565b90936020823d602011611a05575b816119f4602093836111fa565b810103126119625750519238611864565b3d91506119e7565b90916020823d602011611a39575b81611a28602093836111fa565b81010312611962575051903861182c565b3d9150611a1b565b6020959195813d602011611aa6575b81611a5d602093836111fa565b81010312611aa2576040519160208301908382106001600160401b03831117611a8f57506040525181529360206117e3565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a50565b519060ff8216820361064357565b51906001600160a01b038216820361064357565b51906001600160401b038216820361064357565b51906cffffffffffffffffffffffffff8216820361064357565b602081830312610643578051906001600160401b038211610643570181601f82011215610643578051611b3081611554565b92611b3e60405194856111fa565b8184526020828401011161064357611b5c91602080850191016112d3565b90565b60405190611b6c8261116e565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106e65760010190565b6301e133809080600019048211811515166106e6570290565b610120526000610160604051611bf2816111a6565b604051611bfe816111c2565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361012051165afa80156106505760006101605261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0361012051165afa91821561065057600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361012051165afa918215610650576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0361012051165afa92831561065057600093612591575b506040516355d3f8af60e11b815261012051602090829060049082906001600160a01b03165afa9081156106505760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0361012051165afa9485156106505760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361012051165afa918215610650576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0361012051165afa948515610650576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0361012051165afa9889156106505760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0361012051165afa9384156106505760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0361012051165afa92831561065057600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0361012051165afa9485156106505760009561235b575b50604051634fd41dad60e11b8152600481018d905261012051602090829060249082906001600160a01b03165afa80156106505760006101405261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361012051165afa9b8c156106505760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610650576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106505760006101e052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106505760009261226d575b506040516341976e0960e01b81526001600160a01b0384811660048301526101205191959160209187916024918391165afa94851561065057600095612239575b506040516101a08181526370a0823160e01b9091526101205181516001600160a01b039182166004909101529051602091602490829085165afa806101c05215610650576000906101c051612201575b61207660405180610180526111c2565b60018060a01b0316610180515260206101805101526101e05160406101805101526060610180510152608061018051015260018060a01b031660a061018051015260c061018051015260e06101805101526120d660ff61016051166116f8565b976120e4604051998a6111fa565b60ff61016051168952601f196120ff60ff61016051166116f8565b0160005b8181106121e957505060005b60ff610160511660ff82161015612151578061213161214c92610120516126f7565b61213e60ff83168d611754565b5261044560ff82168c611754565b61210f565b5091939597909294969861217b6001600160401b03612174816101405116611bc4565b9216611bc4565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111a6565b610180518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b5f565b9201015201612103565b905060203d602011612232575b61221b816101a0516111fa565b60206101a051809281010312610643575190612066565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261064357519338612016565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611afe565b9038611fd5565b6020813d6020116122be575b816122ab602093836111fa565b8101031261064357516101e05238611fa5565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f74565b909b506020813d602011612317575b816122ff602093836111fa565b810103126106435761231090611ad0565b9a38611f44565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b810103126106435761234990611ad0565b6101405238611f0d565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b81010312610643576040519061238f826111c2565b61239881611ad0565b82526123a660208201611ad0565b60208301526123b760408201611ad0565b60408301526123c860608201611ad0565b60608301526123d960808201611ae4565b60808301526123ea60a08201611ae4565b60a083015260c081015164ffffffffff811681036106435760c08301526124139060e001611aae565b60e08201529338611ece565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261064357519138611e9b565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261064357519238611e69565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261064357519738611e37565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261064357519338611e05565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261064357519038611dd3565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261064357519338611da1565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b81010312610643575138611d6f565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261064357519138611d39565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b81010312610643576125f290611abc565b9038611d07565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b810103126106435761262e90611abc565b9038611cd5565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b810103126106435761266790611aae565b6101605238611ca3565b3d9150612649565b60405190612686826111de565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064357565b90612700611b5f565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161116e565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119625750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261196257508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611962575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119625750612a4760e08651926129d2846111c2565b6129db81611aae565b84526129e960208201611abc565b60208501526129f9888201611abc565b88850152612a0960608201611ad0565b6060850152612a1a60808201611ad0565b6080850152612a2b60a08201611ad0565b60a0850152612a3c60c08201611ad0565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065057600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065057600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106505760009d612bd3575b50604051809e612b7f826111de565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119625750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119625750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611962575051906020612aab565b3d9150612c4f56fea2646970667358221220c6be69eb7ec27c26eaf24f470fffac8cc64610bb460378741cb6a05b4fd199b164736f6c63430008100033", + "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x61020080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461104f575080635346cc1914610bdb578063c2815c0b14610aa0578063cbe293fa14610a54578063d4fc9fc6146108cd5763ec7d7f7a1461006257600080fd5b346106435760e0366003190112610643576004356001600160a01b03811681036106435761008e611106565b61009661125b565b6001600160401b038060643511610643573660236064350112156106435760643560040135116106435736602460606064356004013502606435010111610643576084356001600160a01b03811690036106435760049060206100f761122f565b94610100611245565b60c052600060606040516101138161111c565b828152818582015261012361164b565b6040820152015260405193848092631f94a27560e31b825260018060a01b03165afa91821561065057600092610889575b50610164606435600401356116f8565b9261017260405194856111fa565b60046064350135808552601f1990610189906116f8565b0160005b81811061087257505060005b6064356004013581106107c7575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529094166024850152602084806044810103816001600160a01b0385165afa93841561065057600094610793575b506101fd61164b565b5061020781611bdd565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829086165afa90811561065057600091610761575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106505760009161072f575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152858116602483015290911690602081604481855afa801561065057600060a0526106fc575b5082828103116106e657602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106505760009b6106b2575b5061035e604051806101005261116e565b610100515260a05160206101005101520360406101005101526060610100510152608061010051015260a061010051015260c061010051015260e06101005101526101008051015261012061010051015261014061010051015260a0608051015151936103ca856116f8565b946103d860405196876111fa565b8086526103e7601f19916116f8565b0160005b81811061069b57505060005b60a06080510151805160ff83161015610450579061042a61044b926104236084359160ff851690611754565b5186612a5a565b61043760ff831689611754565b5261044560ff821688611754565b50611bb3565b6103f7565b505093909160805160208101519260408201519160446020608060608401519301519760405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106505760009161065c575b50906024966020959493926080519360c08501519060e08601519261010087015194610120880151966101606101408a015199015199604080519e8f906104fa82611152565b6101005182528f820152015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526040519384809263b3596f0760e01b825260018060a01b0360c05116600483015260018060a01b03165afa91821561065057600092610617575b50604051936105858561111c565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f65750505082936105eb9151601f198583030160608601526113d2565b905160808301520390f35b90919560206101208261060c6001948b51611271565b0197019291016105c9565b9091506020813d602011610648575b81610633602093836111fa565b8101031261064357519038610577565b600080fd5b3d9150610626565b6040513d6000823e3d90fd5b9493929190506020853d602011610693575b8161067b602093836111fa565b810103126106435793519293919290919060246104b4565b3d915061066e565b6020906106a6612679565b82828a010152016103eb565b909a506020813d6020116106de575b816106ce602093836111fa565b810103126106435751993861034d565b3d91506106c1565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610727575b81610715602093836111fa565b81010312610643575160a052386102cd565b3d9150610708565b90506020813d602011610759575b8161074a602093836111fa565b81010312610643575138610283565b3d915061073d565b90506020813d60201161078b575b8161077c602093836111fa565b81010312610643575138610246565b3d915061076f565b9093506020813d6020116107bf575b816107af602093836111fa565b81010312610643575192386101f4565b3d91506107a2565b60606064358282020136036023190112610643576040516107e781611137565b6064356060830201602401356001600160a01b03811690036106435760643560608302016024810135825261084b9188916108249060440161121b565b602082015261083b6064606086028135010161121b565b604082015260843590878661177e565b6108558287611754565b526108608186611754565b5060001981146106e657600101610199565b60209061087d61170f565b8282890101520161018d565b9091506020813d6020116108c5575b816108a5602093836111fa565b8101031261064357516001600160a01b0381168103610643579038610154565b3d9150610898565b3461064357602080600319360112610643576108ef6108ea6110f0565b611bdd565b906040519080825282519261018090818385015261098560018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610958610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a27578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a44838f8690600196030187528d516115b6565b9b019301930191949392906109db565b3461064357604036600319011261064357610a6d6110f0565b6024359060ff8216820361064357610a9c91610a88916126f7565b6040519182916020835260208301906115b6565b0390f35b346106435760031960603682011261064357610aba6110f0565b602435906001600160401b039283831161064357610160809184360301126106435760405190810181811085821117610bc557604052610afc8360040161121b565b81526024830135602082015260448301356040820152606483013584811161064357610b2e906004369186010161156f565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b5d60e4840161121b565b60e082015261010483013561010082015261012483013593841161064357610144610bb193610b95610a9c966004369184010161156f565b6101208401520135610140820152610bab61125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461064357606036600319011261064357610bf46110f0565b610bfc611106565b90610c0561125b565b610c0d61164b565b50610c1782611bdd565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829088165afa9081156106505760009161101d575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829089165afa90811561065057600091610feb575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152878116602483015290911690602081604481855afa90811561065057600091610fb9575b5083838103116106e657879386519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156106505760009c610f85575b50610d626040518060e05261116e565b60e05152602060e051015203604060e0510152606060e0510152608060e051015260a060e051015260c060e051015260e08051015261010060e051015261012060e051015261014060e051015260a082019283515191610dc1836116f8565b92610dcf60405194856111fa565b808452610dde601f19916116f8565b0160005b818110610f6e57505060005b855180519060ff831691821015610e325781610e1c8a610e15610e2d969561044595611754565b5188612a5a565b610e268289611754565b5286611754565b610dee565b610e89868589888d6020830151946020604085015195606086015194608087015194604051809b81948293636eb1769f60e11b84526004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa90811561065057600091610f38575b610a9c975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610ede8d611152565b60e0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906113d2565b90506020873d602011610f66575b81610f53602093836111fa565b8101031261064357610a9c965190610ea5565b3d9150610f46565b602090610f79612679565b82828801015201610de2565b909b506020813d602011610fb1575b81610fa1602093836111fa565b8101031261064357519a38610d52565b3d9150610f94565b90506020813d602011610fe3575b81610fd4602093836111fa565b81010312610643575188610cd4565b3d9150610fc7565b90506020813d602011611015575b81611006602093836111fa565b81010312610643575186610c8f565b3d9150610ff9565b90506020813d602011611047575b81611038602093836111fa565b81010312610643575185610c54565b3d915061102b565b346106435760e0366003190112610643576110686110f0565b6001600160a01b039060243582811681036106435760603660431901126106435761109284611137565b60443583811681036106435784526064358381168103610643576020850152608435928316830361064357836110e19360406101209601526110d261122f565b916110db611245565b9361177e565b6110ee6040518092611271565bf35b600435906001600160a01b038216820361064357565b602435906001600160a01b038216820361064357565b608081019081106001600160401b03821117610bc557604052565b606081019081106001600160401b03821117610bc557604052565b6101a081019081106001600160401b03821117610bc557604052565b61016081019081106001600160401b03821117610bc557604052565b61012081019081106001600160401b03821117610bc557604052565b61018081019081106001600160401b03821117610bc557604052565b61010081019081106001600160401b03821117610bc557604052565b6101c081019081106001600160401b03821117610bc557604052565b90601f801991011681019081106001600160401b03821117610bc557604052565b35906001600160a01b038216820361064357565b60a435906001600160a01b038216820361064357565b60c435906001600160a01b038216820361064357565b604435906001600160a01b038216820361064357565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161144461016093846102608801526103008701906112f6565b9060e083015116610280860152610100808301516102a087015261147c610120928385015161019f19898303016102c08a01526112f6565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115255750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b84806115448f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bc557601f01601f191660200190565b81601f820112156106435780359061158682611554565b9261159460405194856111fa565b8284526020838301011161064357816000926020809301838601378301015290565b9061163d60018060a01b0380845116835260208401516020840152604084015160408401526115f460608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b6040519061165882611152565b604051610180836116688361116e565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b6001600160401b038111610bc55760051b60200190565b6040519061171c8261118a565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117685760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361178b61170f565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065057600095611a41575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561065057600092611a0d575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610650576000946119d9575b506040516370a0823160e01b815287810186905294602086602481855afa958615610650576000966119a5575b50604051906370a0823160e01b825288820152602081602481855afa968715610650578a9160009861196d575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065057600098611936575b50604051986119088a61118a565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611965575b81611951602093836111fa565b8101031261196257505196386118fa565b80fd5b3d9150611944565b9150966020823d60201161199d575b81611989602093836111fa565b8101031261196257505195899060246118be565b3d915061197c565b90956020823d6020116119d1575b816119c0602093836111fa565b810103126119625750519438611891565b3d91506119b3565b90936020823d602011611a05575b816119f4602093836111fa565b810103126119625750519238611864565b3d91506119e7565b90916020823d602011611a39575b81611a28602093836111fa565b81010312611962575051903861182c565b3d9150611a1b565b6020959195813d602011611aa6575b81611a5d602093836111fa565b81010312611aa2576040519160208301908382106001600160401b03831117611a8f57506040525181529360206117e3565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a50565b519060ff8216820361064357565b51906001600160a01b038216820361064357565b51906001600160401b038216820361064357565b51906cffffffffffffffffffffffffff8216820361064357565b602081830312610643578051906001600160401b038211610643570181601f82011215610643578051611b3081611554565b92611b3e60405194856111fa565b8184526020828401011161064357611b5c91602080850191016112d3565b90565b60405190611b6c8261116e565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106e65760010190565b6301e133809080600019048211811515166106e6570290565b610120526000610160604051611bf2816111a6565b604051611bfe816111c2565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361012051165afa80156106505760006101605261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0361012051165afa91821561065057600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361012051165afa918215610650576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0361012051165afa92831561065057600093612591575b506040516355d3f8af60e11b815261012051602090829060049082906001600160a01b03165afa9081156106505760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0361012051165afa9485156106505760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361012051165afa918215610650576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0361012051165afa948515610650576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0361012051165afa9889156106505760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0361012051165afa9384156106505760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0361012051165afa92831561065057600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0361012051165afa9485156106505760009561235b575b50604051634fd41dad60e11b8152600481018d905261012051602090829060249082906001600160a01b03165afa80156106505760006101405261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361012051165afa9b8c156106505760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610650576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106505760006101e052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106505760009261226d575b506040516341976e0960e01b81526001600160a01b0384811660048301526101205191959160209187916024918391165afa94851561065057600095612239575b506040516101a08181526370a0823160e01b9091526101205181516001600160a01b039182166004909101529051602091602490829085165afa806101c05215610650576000906101c051612201575b61207660405180610180526111c2565b60018060a01b0316610180515260206101805101526101e05160406101805101526060610180510152608061018051015260018060a01b031660a061018051015260c061018051015260e06101805101526120d660ff61016051166116f8565b976120e4604051998a6111fa565b60ff61016051168952601f196120ff60ff61016051166116f8565b0160005b8181106121e957505060005b60ff610160511660ff82161015612151578061213161214c92610120516126f7565b61213e60ff83168d611754565b5261044560ff82168c611754565b61210f565b5091939597909294969861217b6001600160401b03612174816101405116611bc4565b9216611bc4565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111a6565b610180518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b5f565b9201015201612103565b905060203d602011612232575b61221b816101a0516111fa565b60206101a051809281010312610643575190612066565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261064357519338612016565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611afe565b9038611fd5565b6020813d6020116122be575b816122ab602093836111fa565b8101031261064357516101e05238611fa5565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f74565b909b506020813d602011612317575b816122ff602093836111fa565b810103126106435761231090611ad0565b9a38611f44565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b810103126106435761234990611ad0565b6101405238611f0d565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b81010312610643576040519061238f826111c2565b61239881611ad0565b82526123a660208201611ad0565b60208301526123b760408201611ad0565b60408301526123c860608201611ad0565b60608301526123d960808201611ae4565b60808301526123ea60a08201611ae4565b60a083015260c081015164ffffffffff811681036106435760c08301526124139060e001611aae565b60e08201529338611ece565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261064357519138611e9b565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261064357519238611e69565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261064357519738611e37565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261064357519338611e05565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261064357519038611dd3565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261064357519338611da1565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b81010312610643575138611d6f565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261064357519138611d39565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b81010312610643576125f290611abc565b9038611d07565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b810103126106435761262e90611abc565b9038611cd5565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b810103126106435761266790611aae565b6101605238611ca3565b3d9150612649565b60405190612686826111de565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064357565b90612700611b5f565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161116e565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119625750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261196257508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611962575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119625750612a4760e08651926129d2846111c2565b6129db81611aae565b84526129e960208201611abc565b60208501526129f9888201611abc565b88850152612a0960608201611ad0565b6060850152612a1a60808201611ad0565b6080850152612a2b60a08201611ad0565b60a0850152612a3c60c08201611ad0565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065057600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065057600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106505760009d612bd3575b50604051809e612b7f826111de565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119625750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119625750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611962575051906020612aab565b3d9150612c4f56fea2646970667358221220c6be69eb7ec27c26eaf24f470fffac8cc64610bb460378741cb6a05b4fd199b164736f6c63430008100033", + "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1931:25;;1061:2431;;;;;;1931:25;;;;;;;1061:2431;1931:25;;;1061:2431;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::i;:::-;;;;;;;;;2078:10;;1061:2431;2090:15;1061:2431;;;;;2090:15;;;;-1:-1:-1;;1061:2431:0;;-1:-1:-1;;;2262:33:0;;-1:-1:-1;;;;;1061:2431:0;;;;;2262:33;;1061:2431;;;;;;;;;;;;;;2262:33;1061:2431;-1:-1:-1;;;;;1061:2431:0;;2262:33;;;;;;;1061:2431;2262:33;;;2073:129;1061:2431;;;:::i;:::-;;8351:12:1;;;:::i;:::-;;;1061:2431:0;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8400:24:1;;1061:2431:0;;;;;;;;;;;8400:24:1;;;;;;;1061:2431:0;8400:24:1;;;2073:129:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8460:30:1;;1061:2431:0;;;;;;;;;;;8460:30:1;;;;;;;1061:2431:0;8460:30:1;;;2073:129:0;-1:-1:-1;8351:12:1;8587:18;;1061:2431:0;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8634:70:1;;1061:2431:0;;;;;;;;;;;;;;;;;8634:70:1;;;;;;1061:2431:0;;8634:70:1;;;2073:129:0;1061:2431;;;;;;;;;8784:18:1;8351:12;8784:18;;:25;1061:2431:0;8784:25:1;;;8827:27;1061:2431:0;8827:27:1;;1061:2431:0;;8873:28:1;;1061:2431:0;8915:23:1;8351:12;8915:23;;;1061:2431:0;;;;;;;8957:28:1;;1061:2431:0;;9000:24:1;1061:2431:0;9000:24:1;;1061:2431:0;9048:33:1;1061:2431:0;9048:33:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;9104:54:1;;1061:2431:0;;;;;;;;;9104:54:1;;1061:2431:0;9104:54:1;;;;;;;1061:2431:0;9104:54:1;;;2073:129:0;1061:2431;;;;;;;;:::i;:::-;;;;;;;;8542:623:1;;1061:2431:0;;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;8351:12:1;1061:2431:0;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;;8542:623:1;;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;;8351:12:1;9267:25;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1061:2431:0;9367:3:1;1061:2431:0;8351:12:1;9267:25;;9333;1061:2431:0;;;;;9329:36:1;;;;1061:2431:0;9392:71:1;9367:3;1061:2431:0;9425:28:1;1061:2431:0;;;;;;9425:28:1;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;1061:2431:0;;;9380:83:1;;:::i;:::-;;;1061:2431:0;;;9380:83:1;;:::i;:::-;;9367:3;:::i;:::-;9316:11;;9329:36;;;;;;8351:12;9575:26;1061:2431:0;9575:26:1;;1061:2431:0;9636:32:1;1061:2431:0;9636:32:1;;1061:2431:0;9703:32:1;1061:2431:0;;8351:12:1;1061:2431:0;9703:32:1;;1061:2431:0;9756:18:1;;1061:2431:0;;;;;;;;;;;9801:32:1;;1061:2431:0;;;;;;;;;9801:32:1;;1061:2431:0;;;;;;;;;;;;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;;9311:159;9886:16;;1061:2431:0;9886:16:1;1061:2431:0;9886:16:1;;;;8351:12;9886:16;;1061:2431:0;9886:16:1;;1061:2431:0;9925:20:1;1061:2431:0;9925:20:1;;1061:2431:0;9977:29:1;1061:2431:0;9977:29:1;;1061:2431:0;10029:20:1;8542:623;10029:20;;1061:2431:0;10081:29:1;1061:2431:0;8542:623:1;10081:29;;1061:2431:0;10140:27:1;;1061:2431:0;;;;;;;;;;;:::i;:::-;;;;;9489:687:1;;;1061:2431:0;9489:687:1;1061:2431:0;;9489:687:1;;1061:2431:0;8351:12:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;9489:687:1;;;1061:2431:0;;;;;;;;;;2411:38;;1061:2431;;;;;;;;;2411:38;;1061:2431;;;;;;;2411:38;;;;;;;1061:2431;2411:38;;;9311:159:1;1061:2431:0;;;;;;;:::i;:::-;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;;;;;;;;;;;;;;;;;8351:12:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8351:12:1;1061:2431:0;;;;;;;;;;;8542:623:1;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;2411:38;;;;1061:2431;2411:38;;1061:2431;2411:38;;;;;;1061:2431;2411:38;;;:::i;:::-;;;1061:2431;;;;;2411:38;;;;1061:2431;;;;2411:38;;;-1:-1:-1;2411:38:0;;;1061:2431;;;;;;;;;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;1061:2431:0;9801:32:1;;;;;;1061:2431:0;9801:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;;;;-1:-1:-1;9801:32:1;;1061:2431:0;;;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;1061:2431:0;9104:54:1;;1061:2431:0;9104:54:1;;;;;;1061:2431:0;9104:54:1;;;:::i;:::-;;;1061:2431:0;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;1061:2431:0;;;;;;;;;;;;8634:70:1;1061:2431:0;8634:70:1;;1061:2431:0;8634:70:1;;;;;;1061:2431:0;8634:70:1;;;:::i;:::-;;;1061:2431:0;;;;;;8634:70:1;;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;1061:2431:0;8460:30:1;;1061:2431:0;8460:30:1;;;;;;1061:2431:0;8460:30:1;;;:::i;:::-;;;1061:2431:0;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;1061:2431:0;8400:24:1;;1061:2431:0;8400:24:1;;;;;;1061:2431:0;8400:24:1;;;:::i;:::-;;;1061:2431:0;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;2262:33:0;;;;1061:2431;2262:33;;1061:2431;2262:33;;;;;;1061:2431;2262:33;;;:::i;:::-;;;1061:2431;;;;;2262:33;;;;;;;-1:-1:-1;2262:33:0;;2107:3;1061:2431;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;2132:63;;1061:2431;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2132:63;;;;:::i;:::-;2120:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2431:0;;;;;;2078:10;;1061:2431;;;;;:::i;:::-;;;;;;;;;;1931:25;;;;1061:2431;1931:25;;1061:2431;1931:25;;;;;;1061:2431;1931:25;;;:::i;:::-;;;1061:2431;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;1931:25;;;;;;;-1:-1:-1;1931:25:0;;1061:2431;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8351:12:1;;;:::i;:::-;1061:2431:0;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;8400:24:1;;1061:2431:0;;;;8400:24:1;;1061:2431:0;;;;;;;;8400:24:1;;;;;;;1061:2431:0;8400:24:1;;;1061:2431:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;8460:30:1;;1061:2431:0;8400:24:1;;1061:2431:0;;;;;;;;8460:30:1;;;;;;;1061:2431:0;8460:30:1;;;1061:2431:0;-1:-1:-1;8587:18:1;;1061:2431:0;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;8634:70:1;;1061:2431:0;;;;;;;;;;;;8400:24:1;1061:2431:0;;;;8634:70:1;;;;;;;1061:2431:0;8634:70:1;;;1061:2431:0;;;;;;;;;8784:18:1;;;;:25;1061:2431:0;8784:25:1;;;8827:27;1061:2431:0;8827:27:1;;1061:2431:0;8873:28:1;1061:2431:0;8873:28:1;;1061:2431:0;8915:23:1;;;;;1061:2431:0;;;;;;;8957:28:1;;1061:2431:0;;9000:24:1;;;;1061:2431:0;9048:33:1;8400:24;9048:33;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;9104:54:1;;1061:2431:0;;;;;;;9104:54:1;;1061:2431:0;9104:54:1;;;;;;;1061:2431:0;9104:54:1;;;1061:2431:0;;;;;;;;;:::i;:::-;;;;8400:24:1;1061:2431:0;8542:623:1;;1061:2431:0;;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;8915:23:1;1061:2431:0;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;9000:24:1;1061:2431:0;8542:623:1;;1061:2431:0;;8542:623:1;;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;;9267:25:1;;;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1061:2431:0;9367:3:1;9333:25;;1061:2431:0;;;;;;9329:36:1;;;;;;9425:28;9392:71;9425:28;;9367:3;9425:28;;9380:83;9425:28;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;;;;:::i;:::-;;;;:::i;9367:3::-;9316:11;;9329:36;9801:32;9329:36;;;;;8400:24;9575:26;;1061:2431:0;9636:32:1;8400:24;1061:2431:0;9636:32:1;;1061:2431:0;9703:32:1;1061:2431:0;9703:32:1;;1061:2431:0;9756:18:1;8915:23;9756:18;;1061:2431:0;;;;;;;;;;;;;9801:32:1;;1061:2431:0;9801:32:1;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;9801:32:1;;;-1:-1:-1;;;;;1061:2431:0;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;;9311:159;1061:2431:0;9886:16:1;;9000:24;9886:16;;1061:2431:0;9925:20:1;1061:2431:0;9925:20:1;;1061:2431:0;9977:29:1;8542:623;9977:29;;1061:2431:0;10029:20:1;8542:623;10029:20;;1061:2431:0;10081:29:1;1061:2431:0;8542:623:1;10081:29;;1061:2431:0;10140:27:1;;1061:2431:0;;;;;;;;:::i;:::-;;;;;8400:24:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;8915:23:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;9000:24:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;9489:687:1;;;1061:2431:0;;;;;;8400:24:1;1061:2431:0;;8400:24:1;1061:2431:0;;;;:::i;9801:32:1:-;;;8400:24;9801:32;;8400:24;9801:32;;;;;;8400:24;9801:32;;;:::i;:::-;;;1061:2431:0;;;;;;;9801:32:1;;;;;;-1:-1:-1;9801:32:1;;1061:2431:0;8400:24:1;1061:2431:0;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;8400:24;9104:54;;8400:24;9104:54;;;;;;8400:24;9104:54;;;:::i;:::-;;;1061:2431:0;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;8634:70;;;8400:24;8634:70;;8400:24;8634:70;;;;;;8400:24;8634:70;;;:::i;:::-;;;1061:2431:0;;;;;8634:70:1;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;8400:24;8460:30;;8400:24;8460:30;;;;;;8400:24;8460:30;;;:::i;:::-;;;1061:2431:0;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2467:1023;;;;;;1061:2431;;:::i;:::-;-1:-1:-1;1061:2431:0;;2768:29;;;;1061:2431;2833:31;;;;1061:2431;;;-1:-1:-1;;;2930:38:0;;-1:-1:-1;;;;;1061:2431:0;;;2930:38;;;;1061:2431;;;;;2930:38;;1061:2431;;;;;;;;;;;;2768:29;1061:2431;;;;;;;2930:38;;;;;;;-1:-1:-1;2930:38:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;;-1:-1:-1;;;3163:34:0;;-1:-1:-1;;;;;1061:2431:0;;;3163:34;;;1061:2431;;;;;2768:29;1061:2431;;;;;;;;;;2768:29;;1061:2431;;;;;3163:34;;;;;;;;;;-1:-1:-1;3163:34:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3216:25:0;;-1:-1:-1;;;;;1061:2431:0;;;3216:25;;;1061:2431;;;;2768:29;1061:2431;;;3216:25;;;;;;;;-1:-1:-1;3216:25:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3270:34:0;;;;;1061:2431;;;;2768:29;1061:2431;;;3270:34;;;;;;;;-1:-1:-1;3270:34:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;3335:34;;;;;1061:2431;2768:29;3335:34;1061:2431;3335:34;;;;;;;;;;;-1:-1:-1;3335:34:0;;;2467:1023;-1:-1:-1;1061:2431:0;2833:31;1061:2431;-1:-1:-1;;;3434:42:0;;;;;1061:2431;;;;;;2768:29;;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;3434:42;;;;;;;-1:-1:-1;3434:42:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;:::i;:::-;;;2768:29;2988:497;;1061:2431;2833:31;2988:497;;1061:2431;2988:497;;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;2467:1023;:::o;3434:42::-;;;2768:29;3434:42;;2768:29;3434:42;;;;;;2768:29;3434:42;;;:::i;:::-;;;1061:2431;;;;;;3434:42;;;;1061:2431;;;3434:42;;;-1:-1:-1;3434:42:0;;3335:34;;;;2768:29;3335:34;;2768:29;3335:34;;;;;;2768:29;3335:34;;;:::i;:::-;;;1061:2431;;;;-1:-1:-1;1061:2431:0;;;;;3335:34;;;;;-1:-1:-1;3335:34:0;;3270;;;2768:29;3270:34;;2768:29;3270:34;;;;;;2768:29;3270:34;;;:::i;:::-;;;1061:2431;;;;;;3270:34;;;;;;;-1:-1:-1;3270:34:0;;3216:25;;;2768:29;3216:25;;2768:29;3216:25;;;;;;2768:29;3216:25;;;:::i;:::-;;;1061:2431;;;;;;3216:25;;;;;;;-1:-1:-1;3216:25:0;;3163:34;;;2768:29;3163:34;;2768:29;3163:34;;;;;;2768:29;3163:34;;;:::i;:::-;;;1061:2431;;;;;;3163:34;;;;;;;-1:-1:-1;3163:34:0;;2930:38;2768:29;2930:38;;;;;2768:29;2930:38;;;;;;2768:29;2930:38;;;:::i;:::-;;;1061:2431;;;;2833:31;1061:2431;;2768:29;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;-1:-1:-1;2833:31:0;1061:2431;;;;;2768:29;2930:38;;1061:2431;-1:-1:-1;;;1061:2431:0;;;;;;;;;;;;2930:38;;;-1:-1:-1;2930:38:0;;1061:2431;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2431:0;;;;4218:18:1;;;;;;;;;;;:::o;6145:2007::-;;;-1:-1:-1;1061:2431:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007:1;1061:2431:0;;;;;;;;;;;;;;;6236:17:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6236:17:1;;;;;;-1:-1:-1;1061:2431:0;6236:17:1;;;6145:2007;1061:2431:0;;;;;;;6279:17:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;;6145:2007;1061:2431:0;;;;;;;6331:26:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;;6145:2007;1061:2431:0;;;;;;;6380:21:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6433:26:1;;6145:2007;6236:15;1061:2431:0;;;;6236:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6433:26:1;;;;;;;-1:-1:-1;6433:26:1;;;6145:2007;1061:2431:0;;;;;;;6496:31:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;;6145:2007;1061:2431:0;;;;;;;6564:31:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;;6145:2007;1061:2431:0;;;;;;;6626:25:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;;6145:2007;1061:2431:0;;;;;;;6676:22:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;;6145:2007;1061:2431:0;;;;;;;6723:19:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;;6145:2007;1061:2431:0;;;;;;;6767:19:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;;6145:2007;1061:2431:0;;;;;;;6831:19:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6883:32:1;;6236:17;6883:32;;1061:2431:0;;;6145:2007:1;6236:15;1061:2431:0;;;;;;;;-1:-1:-1;;;;;1061:2431:0;6883:32:1;;;;;;-1:-1:-1;1061:2431:0;6883:32:1;;;6145:2007;1061:2431:0;;;;;;;6948:32:1;;6236:17;6948:32;;1061:2431:0;;;;;;;;;;6145:2007:1;6236:15;1061:2431:0;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7070:25:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6236:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7070:25:1;;;;;;;-1:-1:-1;7070:25:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7113:27:1;;1061:2431:0;;6236:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7113:27:1;;;;;;-1:-1:-1;7113:27:1;;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7182:23:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6236:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7182:23:1;;;;;;;-1:-1:-1;7182:23:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7257:34:1;;-1:-1:-1;;;;;1061:2431:0;;;6236:17:1;7257:34;;1061:2431:0;6145:2007:1;6236:15;1061:2431:0;;;;;;;;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;;6145:2007;-1:-1:-1;1061:2431:0;;7315:42:1;;;;-1:-1:-1;;;7315:42:1;;;6145:2007;6236:15;7315:42;;-1:-1:-1;;;;;1061:2431:0;;;6236:17:1;7315:42;;;1061:2431:0;7315:42:1;;1061:2431:0;;;;7315:42:1;;1061:2431:0;;7315:42:1;;;;;;;;-1:-1:-1;7315:42:1;;;;;6145:2007;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;7016:348:1;;1061:2431:0;7113:27:1;1061:2431:0;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;;;;;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;;6219:34:1;1061:2431:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6219:34:1;1061:2431:0;;;;;;;;6219:34:1;1061:2431:0;;:::i;:::-;;-1:-1:-1;1061:2431:0;;;;;;7448:11:1;;-1:-1:-1;7476:3:1;1061:2431:0;;6219:34:1;1061:2431:0;;;;7461:13:1;;;;7501:24;;7476:3;7501:24;6145:2007;7501:24;;:::i;:::-;7489:36;1061:2431:0;;;7489:36:1;;:::i;:::-;;;1061:2431:0;;;7489:36:1;;:::i;7476:3::-;7448:11;;7461:13;;;;;;;;;;;7866:38;-1:-1:-1;;;;;7775:38:1;6856:59;1061:2431:0;6856:59:1;1061:2431:0;7775:38:1;:::i;:::-;1061:2431:0;;7866:38:1;:::i;:::-;7970:27;1061:2431:0;;7970:27:1;1061:2431:0;7970:27:1;;4218:18;1061:2431:0;8063:27:1;;4218:18;1061:2431:0;;;;;;;;:::i;:::-;;;;;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;6145:2007:1;7551:596;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;6145:2007:1;:::o;1061:2431:0:-;;;;;;;;:::i;:::-;;;;;;;;7315:42:1;;;1061:2431:0;7315:42:1;1061:2431:0;7315:42:1;;;;;;;;;:::i;:::-;1061:2431:0;7315:42:1;1061:2431:0;7315:42:1;;;;1061:2431:0;;;;;7315:42:1;;;;;;;;7257:34;;;;1061:2431:0;7257:34:1;;1061:2431:0;7257:34:1;;;;;;1061:2431:0;7257:34:1;;;:::i;:::-;;;1061:2431:0;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7113:27;1061:2431:0;7113:27:1;;1061:2431:0;7113:27:1;;;;;;1061:2431:0;7113:27:1;;;:::i;:::-;;;1061:2431:0;;;;;7113:27:1;;;;;;;;-1:-1:-1;7113:27:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;;;;:::i;:::-;;;;;6948:32;;;;1061:2431:0;6948:32:1;;1061:2431:0;6948:32:1;;;;;;1061:2431:0;6948:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;6883;1061:2431:0;6883:32:1;;1061:2431:0;6883:32:1;;;;;;1061:2431:0;6883:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6883:32:1;;;;;;;-1:-1:-1;6883:32:1;;6831:19;;;;1061:2431:0;6831:19:1;;1061:2431:0;6831:19:1;;;;;;1061:2431:0;6831:19:1;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;6767;;;;1061:2431:0;6767:19:1;;1061:2431:0;6767:19:1;;;;;;1061:2431:0;6767:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;6723;;;;1061:2431:0;6723:19:1;;1061:2431:0;6723:19:1;;;;;;1061:2431:0;6723:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;6676:22;;;;1061:2431:0;6676:22:1;;1061:2431:0;6676:22:1;;;;;;1061:2431:0;6676:22:1;;;:::i;:::-;;;1061:2431:0;;;;;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;6626:25;;;;1061:2431:0;6626:25:1;;1061:2431:0;6626:25:1;;;;;;1061:2431:0;6626:25:1;;;:::i;:::-;;;1061:2431:0;;;;;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;6564:31;;;;1061:2431:0;6564:31:1;;1061:2431:0;6564:31:1;;;;;;1061:2431:0;6564:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;6496;;;;1061:2431:0;6496:31:1;;1061:2431:0;6496:31:1;;;;;;1061:2431:0;6496:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;6433:26;;;1061:2431:0;6433:26:1;;1061:2431:0;6433:26:1;;;;;;1061:2431:0;6433:26:1;;;:::i;:::-;;;1061:2431:0;;;;;6433:26:1;;;;;;-1:-1:-1;6433:26:1;;6380:21;;;;1061:2431:0;6380:21:1;;1061:2431:0;6380:21:1;;;;;;1061:2431:0;6380:21:1;;;:::i;:::-;;;1061:2431:0;;;;;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;6331:26;;;;1061:2431:0;6331:26:1;;1061:2431:0;6331:26:1;;;;;;1061:2431:0;6331:26:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;6279:17;;;;1061:2431:0;6279:17:1;;1061:2431:0;6279:17:1;;;;;;1061:2431:0;6279:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;6236;1061:2431:0;6236:17:1;;1061:2431:0;6236:17:1;;;;;;1061:2431:0;6236:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6236:17:1;;;;;;;-1:-1:-1;6236:17:1;;1061:2431:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;10185:782:1:-;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10321:25:1;;1061:2431:0;;;;10321:25:1;;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;;;;;10321:25:1;;1061:2431:0;;;;10321:25:1;;;;;;;-1:-1:-1;10321:25:1;;;10185:782;1061:2431:0;;10409:15:1;;;;1061:2431:0;;;;;;-1:-1:-1;;;;;10452:32:1;10321:25;10452:32;;;;1061:2431:0;;;;;;;;;;;;;;10504:33:1;;;;;;;;;-1:-1:-1;10504:33:1;;;10185:782;10574:35;10321:25;10574:35;;1061:2431:0;10574:35:1;;1061:2431:0;;10638:27:1;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;10681:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10681:29:1;;;10185:782;10742:19;;;;1061:2431:0;;;;;;;;;;;;;;;10727:35:1;;10321:25;10727:35;;1061:2431:0;10727:35:1;;;;;;;;;;-1:-1:-1;10727:35:1;;;10185:782;1061:2431:0;;;10823:19:1;1061:2431:0;10823:19:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;10860:31:1;;;;10321:25;10860:31;-1:-1:-1;10860:31:1;;;;;;;-1:-1:-1;10860:31:1;;;10185:782;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10914:39:1;;1061:2431:0;;10321:25:1;10914:39;;1061:2431:0;;;;;;;10914:39:1;;1061:2431:0;10914:39:1;;;;;;;-1:-1:-1;10914:39:1;;;10185:782;1061:2431:0;;;;;;;;:::i;:::-;;10366:596:1;;1061:2431:0;10366:596:1;;1061:2431:0;10366:596:1;;;1061:2431:0;10452:32:1;10366:596;;1061:2431:0;;10366:596:1;;1061:2431:0;10638:27:1;10366:596;;1061:2431:0;;10366:596:1;;1061:2431:0;10366:596:1;;1061:2431:0;10366:596:1;;;1061:2431:0;10366:596:1;;;1061:2431:0;10185:782:1;:::o;10914:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;10914:39:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10860:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10727:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;10727:35:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10681:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10504:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;10321:25:1;10504:33;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10321:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10321:25:1;;;;;;;;;10971:925;;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11271:63:1;;-1:-1:-1;;;;;1061:2431:0;;;11271:63:1;;;1061:2431:0;;;;;;;;;;;;;;;11271:63:1;1061:2431:0;;;;11271:63:1;;;;;;;-1:-1:-1;11271:63:1;;;10971:925;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11353:57:1;;-1:-1:-1;;;;;1061:2431:0;;;11271:63:1;11353:57;;1061:2431:0;;;;;;;;;11271:63:1;;1061:2431:0;;;;;;11353:57:1;;;;;;;-1:-1:-1;11353:57:1;;;10971:925;-1:-1:-1;11271:63:1;11438:22;;1061:2431:0;;11480:14:1;;;1061:2431:0;11531:31:1;;;1061:2431:0;;11591:23:1;;1061:2431:0;11630:10:1;;;;11657:11;;;1061:2431:0;;11689:15:1;;1061:2431:0;11725:15:1;;;1061:2431:0;11758:12:1;;;;11793:17;;;1061:2431:0;;;;;-1:-1:-1;;;11835:47:1;;-1:-1:-1;;;;;1061:2431:0;;;11271:63:1;11835:47;;1061:2431:0;;11758:12:1;;1061:2431:0;;;;;;;;;;11630:10:1;;1061:2431:0;;;;;11835:47:1;;1061:2431:0;11835:47:1;11271:63;11835:47;;;;;;;-1:-1:-1;11835:47:1;;;10971:925;1061:2431:0;;;;;;;;:::i;:::-;;;11271:63:1;11170:721;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;11170:721:1;;1061:2431:0;11630:10:1;11170:721;;1061:2431:0;11531:31:1;11170:721;;1061:2431:0;;11170:721:1;;1061:2431:0;11657:11:1;11170:721;;1061:2431:0;;11170:721:1;;1061:2431:0;11725:15:1;11170:721;;1061:2431:0;11758:12:1;11170:721;;1061:2431:0;11793:17:1;11170:721;;1061:2431:0;11170:721:1;;;1061:2431:0;11170:721:1;;;1061:2431:0;11170:721:1;;;1061:2431:0;10971:925:1;:::o;11835:47::-;;;11271:63;11835:47;;11271:63;11835:47;;;;;;11271:63;11835:47;;;:::i;:::-;;;1061:2431:0;;;;;;11835:47:1;;;;;;;-1:-1:-1;11835:47:1;;11353:57;;11271:63;11353:57;;11271:63;11353:57;;;;;;11271:63;11353:57;;;:::i;:::-;;;1061:2431:0;;;;;;;;:::i;:::-;11353:57:1;;;;;;-1:-1:-1;11353:57:1;;11271:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;11271:63:1;;;;;;-1:-1:-1;11271:63:1;", + "linkReferences": {} + }, + "methodIdentifiers": { + "aTokenMetadata(address,address,(address,address,address),address,address)": "0abe0bec", + "collateralInfo(address,uint8)": "cbe293fa", + "collateralInfoWithAccount(address,(address,uint256,uint256,string,uint256,uint256,uint256,address,uint256,string,uint256),address)": "c2815c0b", + "getMigratorData(address,address,address,(address,address,address)[],address,address,address)": "ec7d7f7a", + "query(address)": "d4fc9fc6", + "queryWithAccount(address,address,address)": "5346cc19" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract LendingPool", + "name": "pool", + "type": "address" + }, + { + "internalType": "contract AavePriceOracle", + "name": "priceOracle", + "type": "address" + }, + { + "internalType": "struct AaveV2Query.ATokenRequest", + "name": "aTokenRequest", + "type": "tuple", + "components": [ + { + "internalType": "contract AToken", + "name": "aToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "variableDebtToken", + "type": "address" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "aTokenMetadata", + "outputs": [ + { + "internalType": "struct AaveV2Query.ATokenMetadata", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "aToken", + "type": "address" + }, + { + "internalType": "address", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "address", + "name": "variableDebtToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "variableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "configuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "priceInETH", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralInfo", + "outputs": [ + { + "internalType": "struct CometQuery.CollateralAsset", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "struct CometQuery.CollateralAsset", + "name": "asset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralInfoWithAccount", + "outputs": [ + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract LendingPoolAddressesProvider", + "name": "provider", + "type": "address" + }, + { + "internalType": "contract LendingPool", + "name": "pool", + "type": "address" + }, + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "struct AaveV2Query.ATokenRequest[]", + "name": "aTokens", + "type": "tuple[]", + "components": [ + { + "internalType": "contract AToken", + "name": "aToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "contract DebtToken", + "name": "variableDebtToken", + "type": "address" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + }, + { + "internalType": "address", + "name": "usdcAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getMigratorData", + "outputs": [ + { + "internalType": "struct AaveV2Query.QueryResponse", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "migratorEnabled", + "type": "uint256" + }, + { + "internalType": "struct AaveV2Query.ATokenMetadata[]", + "name": "tokens", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "aToken", + "type": "address" + }, + { + "internalType": "address", + "name": "stableDebtToken", + "type": "address" + }, + { + "internalType": "address", + "name": "variableDebtToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "variableDebtBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "configuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "priceInETH", + "type": "uint256" + } + ] + }, + { + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "cometState", + "type": "tuple", + "components": [ + { + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "usdcPriceInETH", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "query", + "outputs": [ + { + "internalType": "struct CometQuery.CometState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct CometQuery.BaseAsset", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ] + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAsset[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "bulker", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "queryWithAccount", + "outputs": [ + { + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ] + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/AaveV2Query.sol": "AaveV2Query" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/AaveV2Query.sol": { + "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "urls": [ + "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", + "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + ], + "license": "UNLICENSED" + }, + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/AaveV2Query.sol", + "id": 288, + "exportedSymbols": { + "AToken": [ + 19 + ], + "AavePriceOracle": [ + 54 + ], + "AaveV2Query": [ + 287 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "DebtToken": [ + 27 + ], + "ERC20": [ + 630 + ], + "LendingPool": [ + 46 + ], + "LendingPoolAddressesProvider": [ + 34 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3454:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 2, + "nodeType": "ImportDirective", + "src": "65:26:0", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 288, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 19, + "nodeType": "ContractDefinition", + "src": "93:170:0", + "nodes": [ + { + "id": 11, + "nodeType": "FunctionDefinition", + "src": "114:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "123:9:0", + "parameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "owner", + "nameLocation": "141:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "133:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "spender", + "nameLocation": "156:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "148:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "132:32:0" + }, + "returnParameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "188:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "187:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 18, + "nodeType": "FunctionDefinition", + "src": "198:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "207:9:0", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "owner", + "nameLocation": "225:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "217:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "217:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "216:15:0" + }, + "returnParameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "255:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "254:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 19 + ], + "name": "AToken", + "nameLocation": "103:6:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 27, + "nodeType": "ContractDefinition", + "src": "265:89:0", + "nodes": [ + { + "id": 26, + "nodeType": "FunctionDefinition", + "src": "289:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "298:9:0", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "owner", + "nameLocation": "316:5:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "307:15:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "346:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:6:0" + }, + "scope": 27, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "DebtToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 27 + ], + "name": "DebtToken", + "nameLocation": "275:9:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 34, + "nodeType": "ContractDefinition", + "src": "356:111:0", + "nodes": [ + { + "id": 33, + "nodeType": "FunctionDefinition", + "src": "399:66:0", + "functionSelector": "fca513a8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriceOracle", + "nameLocation": "408:14:0", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:0" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "448:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 30, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29, + "name": "AavePriceOracle", + "nameLocations": [ + "448:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "448:15:0" + }, + "referencedDeclaration": 54, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "447:17:0" + }, + "scope": 34, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPoolAddressesProvider", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 34 + ], + "name": "LendingPoolAddressesProvider", + "nameLocation": "366:28:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 46, + "nodeType": "ContractDefinition", + "src": "469:489:0", + "nodes": [ + { + "id": 37, + "nodeType": "StructDefinition", + "src": "495:361:0", + "canonicalName": "LendingPool.ReserveConfigurationMap", + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "data", + "nameLocation": "847:4:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "839:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ReserveConfigurationMap", + "nameLocation": "502:23:0", + "scope": 46, + "visibility": "public" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "860:96:0", + "functionSelector": "c44b11f7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getConfiguration", + "nameLocation": "869:16:0", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "asset", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "885:15:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "924:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 42, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 41, + "name": "ReserveConfigurationMap", + "nameLocations": [ + "924:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "924:23:0" + }, + "referencedDeclaration": 37, + "src": "924:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "src": "923:32:0" + }, + "scope": 46, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 46 + ], + "name": "LendingPool", + "nameLocation": "479:11:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 54, + "nodeType": "ContractDefinition", + "src": "960:99:0", + "nodes": [ + { + "id": 53, + "nodeType": "FunctionDefinition", + "src": "990:67:0", + "functionSelector": "b3596f07", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetPrice", + "nameLocation": "999:13:0", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "asset", + "nameLocation": "1021:5:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1013:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1012:15:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1051:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:6:0" + }, + "scope": 54, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AavePriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 54 + ], + "name": "AavePriceOracle", + "nameLocation": "970:15:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 287, + "nodeType": "ContractDefinition", + "src": "1061:2431:0", + "nodes": [ + { + "id": 75, + "nodeType": "StructDefinition", + "src": "1100:248:0", + "canonicalName": "AaveV2Query.ATokenMetadata", + "members": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1136:6:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1128:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1128:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1156:15:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1148:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1185:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1177:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1177:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1213:9:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1208:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1233:7:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1228:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1228:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "stableDebtBalance", + "nameLocation": "1251:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1246:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1246:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "variableDebtBalance", + "nameLocation": "1279:19:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1274:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "1309:13:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1304:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "priceInETH", + "nameLocation": "1333:10:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1328:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1328:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenMetadata", + "nameLocation": "1107:14:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 87, + "nodeType": "StructDefinition", + "src": "1352:149:0", + "canonicalName": "AaveV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1384:15:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1379:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1422:6:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1405:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 79, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 78, + "name": "ATokenMetadata", + "nameLocations": [ + "1405:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "1405:14:0" + }, + "referencedDeclaration": 75, + "src": "1405:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 80, + "nodeType": "ArrayTypeName", + "src": "1405:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1461:10:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1434:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 83, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 82, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1434:26:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1434:26:0" + }, + "referencedDeclaration": 789, + "src": "1434:26:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "usdcPriceInETH", + "nameLocation": "1482:14:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1477:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 85, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1359:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 97, + "nodeType": "StructDefinition", + "src": "1505:109:0", + "canonicalName": "AaveV2Query.ATokenRequest", + "members": [ + { + "constant": false, + "id": 90, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1539:6:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1532:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 89, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 88, + "name": "AToken", + "nameLocations": [ + "1532:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "1532:6:0" + }, + "referencedDeclaration": 19, + "src": "1532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1561:15:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1551:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 92, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 91, + "name": "DebtToken", + "nameLocations": [ + "1551:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1551:9:0" + }, + "referencedDeclaration": 27, + "src": "1551:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1592:17:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1582:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 95, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 94, + "name": "DebtToken", + "nameLocations": [ + "1582:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1582:9:0" + }, + "referencedDeclaration": 27, + "src": "1582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenRequest", + "nameLocation": "1512:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 194, + "nodeType": "FunctionDefinition", + "src": "1618:845:0", + "body": { + "id": 193, + "nodeType": "Block", + "src": "1895:568:0", + "statements": [ + { + "assignments": [ + 124 + ], + "declarations": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1917:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1901:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 122, + "name": "AavePriceOracle", + "nameLocations": [ + "1901:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "1901:15:0" + }, + "referencedDeclaration": 54, + "src": "1901:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 128, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 125, + "name": "provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "1931:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:14:0", + "memberName": "getPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "1931:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", + "typeString": "function () view external returns (contract AavePriceOracle)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1901:55:0" + }, + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "aTokenCount", + "nameLocation": "1967:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 133, + "initialValue": { + "expression": { + "id": 131, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "1981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1989:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1981:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:33:0" + }, + { + "assignments": [ + 138 + ], + "declarations": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2025:6:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "2001:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 135, + "name": "ATokenMetadata", + "nameLocations": [ + "2001:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2001:14:0" + }, + "referencedDeclaration": 75, + "src": "2001:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 137, + "nodeType": "ArrayTypeName", + "src": "2001:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 145, + "initialValue": { + "arguments": [ + { + "id": 143, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2055:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2034:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 139, + "name": "ATokenMetadata", + "nameLocations": [ + "2038:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2038:14:0" + }, + "referencedDeclaration": 75, + "src": "2038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 141, + "nodeType": "ArrayTypeName", + "src": "2038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2034:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:66:0" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "2112:90:0", + "statements": [ + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 156, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "id": 158, + "indexExpression": { + "id": 157, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2127:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2120:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 160, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "2147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + { + "id": 161, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2153:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + { + "baseExpression": { + "id": 162, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 164, + "indexExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2166:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + } + }, + { + "id": 165, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 166, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 159, + "name": "aTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "2132:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" + } + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "src": "2120:75:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2120:75:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2090:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 151, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2090:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 171, + "initializationExpression": { + "assignments": [ + 147 + ], + "declarations": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "i", + "nameLocation": "2083:1:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "2078:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2078:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 149, + "initialValue": { + "hexValue": "30", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2078:10:0" + }, + "loopExpression": { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2107:3:0", + "subExpression": { + "id": 153, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2107:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2107:3:0" + }, + "nodeType": "ForStatement", + "src": "2073:129:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 175, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 176, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 173, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2268:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2262:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 178, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2313:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2358:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 181, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2382:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2374:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 179, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2341:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + { + "arguments": [ + { + "id": 189, + "name": "usdcAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2437:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 187, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2423:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "2411:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2411:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 172, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "2221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", + "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2245:15:0", + "2305:6:0", + "2329:10:0", + "2395:14:0" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState", + "usdcPriceInETH" + ], + "nodeType": "FunctionCall", + "src": "2221:237:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 121, + "id": 192, + "nodeType": "Return", + "src": "2208:250:0" + } + ] + }, + "functionSelector": "ec7d7f7a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMigratorData", + "nameLocation": "1627:15:0", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "provider", + "nameLocation": "1677:8:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1648:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "LendingPoolAddressesProvider", + "nameLocations": [ + "1648:28:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "1648:28:0" + }, + "referencedDeclaration": 34, + "src": "1648:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "pool", + "nameLocation": "1703:4:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1691:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "LendingPool", + "nameLocations": [ + "1691:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1691:11:0" + }, + "referencedDeclaration": 46, + "src": "1691:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "comet", + "nameLocation": "1719:5:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1713:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 104, + "name": "Comet", + "nameLocations": [ + "1713:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "1713:5:0" + }, + "referencedDeclaration": 598, + "src": "1713:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "aTokens", + "nameLocation": "1755:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1730:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 107, + "name": "ATokenRequest", + "nameLocations": [ + "1730:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "1730:13:0" + }, + "referencedDeclaration": 97, + "src": "1730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "id": 109, + "nodeType": "ArrayTypeName", + "src": "1730:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "1784:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1768:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1813:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1797:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1797:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "usdcAddress", + "nameLocation": "1834:11:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1826:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1642:207:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1873:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + }, + "typeName": { + "id": 119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 118, + "name": "QueryResponse", + "nameLocations": [ + "1873:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "1873:13:0" + }, + "referencedDeclaration": 87, + "src": "1873:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "1872:22:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 286, + "nodeType": "FunctionDefinition", + "src": "2467:1023:0", + "body": { + "id": 285, + "nodeType": "Block", + "src": "2692:798:0", + "statements": [ + { + "assignments": [ + 215 + ], + "declarations": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "2705:6:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2698:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 213, + "name": "AToken", + "nameLocations": [ + "2698:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "2698:6:0" + }, + "referencedDeclaration": 19, + "src": "2698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "expression": { + "id": 216, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2728:6:0", + "memberName": "aToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:36:0" + }, + { + "assignments": [ + 221 + ], + "declarations": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "2750:15:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2740:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 219, + "name": "DebtToken", + "nameLocations": [ + "2740:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2740:9:0" + }, + "referencedDeclaration": 27, + "src": "2740:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 224, + "initialValue": { + "expression": { + "id": 222, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2768:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2782:15:0", + "memberName": "stableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 93, + "src": "2768:29:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2740:57:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "2813:17:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2803:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "DebtToken", + "nameLocations": [ + "2803:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2803:9:0" + }, + "referencedDeclaration": 27, + "src": "2803:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "expression": { + "id": 228, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2833:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2847:17:0", + "memberName": "variableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2833:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2803:61:0" + }, + { + "assignments": [ + 235 + ], + "declarations": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "2914:13:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2871:56:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 234, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 233, + "name": "LendingPool.ReserveConfigurationMap", + "nameLocations": [ + "2871:11:0", + "2883:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "2871:35:0" + }, + "referencedDeclaration": 37, + "src": "2871:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 240, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2960:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:0", + "typeDescriptions": {} + } + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2952:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 236, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "2930:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2935:16:0", + "memberName": "getConfiguration", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2930:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", + "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2871:97:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 247, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3029:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3021:7:0", + "typeDescriptions": {} + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3021:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 251, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3071:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3063:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3063:7:0", + "typeDescriptions": {} + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3063:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 255, + "name": "variableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3124:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3116:7:0", + "typeDescriptions": {} + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3116:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 259, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 260, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 257, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3163:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3163:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3233:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 262, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3216:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3223:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "3216:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3216:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 266, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3270:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3286:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3270:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3270:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 272, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 270, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3335:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3335:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 274, + "name": "configuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "3394:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3408:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3394:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 280, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3460:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:0", + "typeDescriptions": {} + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3460:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 276, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3434:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3446:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "3434:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3434:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 244, + "name": "ATokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2988:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", + "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3013:6:0", + "3046:15:0", + "3097:17:0", + "3152:9:0", + "3207:7:0", + "3251:17:0", + "3314:19:0", + "3379:13:0", + "3422:10:0" + ], + "names": [ + "aToken", + "stableDebtToken", + "variableDebtToken", + "allowance", + "balance", + "stableDebtBalance", + "variableDebtBalance", + "configuration", + "priceInETH" + ], + "nodeType": "FunctionCall", + "src": "2988:497:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "functionReturnParameters": 212, + "id": 284, + "nodeType": "Return", + "src": "2975:510:0" + } + ] + }, + "functionSelector": "0abe0bec", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "aTokenMetadata", + "nameLocation": "2476:14:0", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "pool", + "nameLocation": "2508:4:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2496:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 196, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 195, + "name": "LendingPool", + "nameLocations": [ + "2496:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "2496:11:0" + }, + "referencedDeclaration": 46, + "src": "2496:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2534:11:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2518:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 199, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 198, + "name": "AavePriceOracle", + "nameLocations": [ + "2518:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "2518:15:0" + }, + "referencedDeclaration": 54, + "src": "2518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "aTokenRequest", + "nameLocation": "2572:13:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2551:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + }, + "typeName": { + "id": 202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 201, + "name": "ATokenRequest", + "nameLocations": [ + "2551:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "2551:13:0" + }, + "referencedDeclaration": 97, + "src": "2551:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "account", + "nameLocation": "2607:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2591:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2591:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2636:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2620:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2490:157:0" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2669:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + }, + "typeName": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "ATokenMetadata", + "nameLocations": [ + "2669:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2669:14:0" + }, + "referencedDeclaration": 75, + "src": "2669:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2668:23:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 55, + "name": "CometQuery", + "nameLocations": [ + "1085:10:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1085:10:0" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1085:10:0" + } + ], + "canonicalName": "AaveV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 287, + 1268 + ], + "name": "AaveV2Query", + "nameLocation": "1070:11:0", + "scope": 288, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json b/web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json new file mode 100644 index 0000000..000dd60 --- /dev/null +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json @@ -0,0 +1,3998 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "balanceOf(address)": "70a08231" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"DebtToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/AaveV2Query.sol": "DebtToken" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/AaveV2Query.sol": { + "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "urls": [ + "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", + "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + ], + "license": "UNLICENSED" + }, + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/AaveV2Query.sol", + "id": 288, + "exportedSymbols": { + "AToken": [ + 19 + ], + "AavePriceOracle": [ + 54 + ], + "AaveV2Query": [ + 287 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "DebtToken": [ + 27 + ], + "ERC20": [ + 630 + ], + "LendingPool": [ + 46 + ], + "LendingPoolAddressesProvider": [ + 34 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3454:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 2, + "nodeType": "ImportDirective", + "src": "65:26:0", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 288, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 19, + "nodeType": "ContractDefinition", + "src": "93:170:0", + "nodes": [ + { + "id": 11, + "nodeType": "FunctionDefinition", + "src": "114:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "123:9:0", + "parameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "owner", + "nameLocation": "141:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "133:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "spender", + "nameLocation": "156:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "148:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "132:32:0" + }, + "returnParameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "188:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "187:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 18, + "nodeType": "FunctionDefinition", + "src": "198:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "207:9:0", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "owner", + "nameLocation": "225:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "217:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "217:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "216:15:0" + }, + "returnParameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "255:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "254:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 19 + ], + "name": "AToken", + "nameLocation": "103:6:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 27, + "nodeType": "ContractDefinition", + "src": "265:89:0", + "nodes": [ + { + "id": 26, + "nodeType": "FunctionDefinition", + "src": "289:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "298:9:0", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "owner", + "nameLocation": "316:5:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "307:15:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "346:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:6:0" + }, + "scope": 27, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "DebtToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 27 + ], + "name": "DebtToken", + "nameLocation": "275:9:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 34, + "nodeType": "ContractDefinition", + "src": "356:111:0", + "nodes": [ + { + "id": 33, + "nodeType": "FunctionDefinition", + "src": "399:66:0", + "functionSelector": "fca513a8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriceOracle", + "nameLocation": "408:14:0", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:0" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "448:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 30, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29, + "name": "AavePriceOracle", + "nameLocations": [ + "448:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "448:15:0" + }, + "referencedDeclaration": 54, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "447:17:0" + }, + "scope": 34, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPoolAddressesProvider", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 34 + ], + "name": "LendingPoolAddressesProvider", + "nameLocation": "366:28:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 46, + "nodeType": "ContractDefinition", + "src": "469:489:0", + "nodes": [ + { + "id": 37, + "nodeType": "StructDefinition", + "src": "495:361:0", + "canonicalName": "LendingPool.ReserveConfigurationMap", + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "data", + "nameLocation": "847:4:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "839:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ReserveConfigurationMap", + "nameLocation": "502:23:0", + "scope": 46, + "visibility": "public" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "860:96:0", + "functionSelector": "c44b11f7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getConfiguration", + "nameLocation": "869:16:0", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "asset", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "885:15:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "924:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 42, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 41, + "name": "ReserveConfigurationMap", + "nameLocations": [ + "924:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "924:23:0" + }, + "referencedDeclaration": 37, + "src": "924:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "src": "923:32:0" + }, + "scope": 46, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 46 + ], + "name": "LendingPool", + "nameLocation": "479:11:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 54, + "nodeType": "ContractDefinition", + "src": "960:99:0", + "nodes": [ + { + "id": 53, + "nodeType": "FunctionDefinition", + "src": "990:67:0", + "functionSelector": "b3596f07", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetPrice", + "nameLocation": "999:13:0", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "asset", + "nameLocation": "1021:5:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1013:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1012:15:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1051:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:6:0" + }, + "scope": 54, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AavePriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 54 + ], + "name": "AavePriceOracle", + "nameLocation": "970:15:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 287, + "nodeType": "ContractDefinition", + "src": "1061:2431:0", + "nodes": [ + { + "id": 75, + "nodeType": "StructDefinition", + "src": "1100:248:0", + "canonicalName": "AaveV2Query.ATokenMetadata", + "members": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1136:6:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1128:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1128:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1156:15:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1148:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1185:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1177:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1177:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1213:9:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1208:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1233:7:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1228:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1228:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "stableDebtBalance", + "nameLocation": "1251:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1246:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1246:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "variableDebtBalance", + "nameLocation": "1279:19:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1274:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "1309:13:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1304:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "priceInETH", + "nameLocation": "1333:10:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1328:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1328:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenMetadata", + "nameLocation": "1107:14:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 87, + "nodeType": "StructDefinition", + "src": "1352:149:0", + "canonicalName": "AaveV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1384:15:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1379:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1422:6:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1405:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 79, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 78, + "name": "ATokenMetadata", + "nameLocations": [ + "1405:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "1405:14:0" + }, + "referencedDeclaration": 75, + "src": "1405:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 80, + "nodeType": "ArrayTypeName", + "src": "1405:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1461:10:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1434:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 83, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 82, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1434:26:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1434:26:0" + }, + "referencedDeclaration": 789, + "src": "1434:26:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "usdcPriceInETH", + "nameLocation": "1482:14:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1477:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 85, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1359:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 97, + "nodeType": "StructDefinition", + "src": "1505:109:0", + "canonicalName": "AaveV2Query.ATokenRequest", + "members": [ + { + "constant": false, + "id": 90, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1539:6:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1532:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 89, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 88, + "name": "AToken", + "nameLocations": [ + "1532:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "1532:6:0" + }, + "referencedDeclaration": 19, + "src": "1532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1561:15:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1551:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 92, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 91, + "name": "DebtToken", + "nameLocations": [ + "1551:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1551:9:0" + }, + "referencedDeclaration": 27, + "src": "1551:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1592:17:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1582:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 95, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 94, + "name": "DebtToken", + "nameLocations": [ + "1582:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1582:9:0" + }, + "referencedDeclaration": 27, + "src": "1582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenRequest", + "nameLocation": "1512:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 194, + "nodeType": "FunctionDefinition", + "src": "1618:845:0", + "body": { + "id": 193, + "nodeType": "Block", + "src": "1895:568:0", + "statements": [ + { + "assignments": [ + 124 + ], + "declarations": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1917:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1901:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 122, + "name": "AavePriceOracle", + "nameLocations": [ + "1901:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "1901:15:0" + }, + "referencedDeclaration": 54, + "src": "1901:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 128, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 125, + "name": "provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "1931:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:14:0", + "memberName": "getPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "1931:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", + "typeString": "function () view external returns (contract AavePriceOracle)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1901:55:0" + }, + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "aTokenCount", + "nameLocation": "1967:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 133, + "initialValue": { + "expression": { + "id": 131, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "1981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1989:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1981:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:33:0" + }, + { + "assignments": [ + 138 + ], + "declarations": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2025:6:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "2001:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 135, + "name": "ATokenMetadata", + "nameLocations": [ + "2001:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2001:14:0" + }, + "referencedDeclaration": 75, + "src": "2001:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 137, + "nodeType": "ArrayTypeName", + "src": "2001:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 145, + "initialValue": { + "arguments": [ + { + "id": 143, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2055:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2034:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 139, + "name": "ATokenMetadata", + "nameLocations": [ + "2038:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2038:14:0" + }, + "referencedDeclaration": 75, + "src": "2038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 141, + "nodeType": "ArrayTypeName", + "src": "2038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2034:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:66:0" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "2112:90:0", + "statements": [ + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 156, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "id": 158, + "indexExpression": { + "id": 157, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2127:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2120:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 160, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "2147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + { + "id": 161, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2153:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + { + "baseExpression": { + "id": 162, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 164, + "indexExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2166:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + } + }, + { + "id": 165, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 166, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 159, + "name": "aTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "2132:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" + } + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "src": "2120:75:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2120:75:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2090:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 151, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2090:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 171, + "initializationExpression": { + "assignments": [ + 147 + ], + "declarations": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "i", + "nameLocation": "2083:1:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "2078:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2078:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 149, + "initialValue": { + "hexValue": "30", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2078:10:0" + }, + "loopExpression": { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2107:3:0", + "subExpression": { + "id": 153, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2107:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2107:3:0" + }, + "nodeType": "ForStatement", + "src": "2073:129:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 175, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 176, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 173, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2268:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2262:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 178, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2313:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2358:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 181, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2382:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2374:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 179, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2341:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + { + "arguments": [ + { + "id": 189, + "name": "usdcAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2437:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 187, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2423:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "2411:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2411:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 172, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "2221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", + "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2245:15:0", + "2305:6:0", + "2329:10:0", + "2395:14:0" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState", + "usdcPriceInETH" + ], + "nodeType": "FunctionCall", + "src": "2221:237:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 121, + "id": 192, + "nodeType": "Return", + "src": "2208:250:0" + } + ] + }, + "functionSelector": "ec7d7f7a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMigratorData", + "nameLocation": "1627:15:0", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "provider", + "nameLocation": "1677:8:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1648:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "LendingPoolAddressesProvider", + "nameLocations": [ + "1648:28:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "1648:28:0" + }, + "referencedDeclaration": 34, + "src": "1648:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "pool", + "nameLocation": "1703:4:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1691:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "LendingPool", + "nameLocations": [ + "1691:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1691:11:0" + }, + "referencedDeclaration": 46, + "src": "1691:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "comet", + "nameLocation": "1719:5:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1713:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 104, + "name": "Comet", + "nameLocations": [ + "1713:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "1713:5:0" + }, + "referencedDeclaration": 598, + "src": "1713:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "aTokens", + "nameLocation": "1755:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1730:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 107, + "name": "ATokenRequest", + "nameLocations": [ + "1730:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "1730:13:0" + }, + "referencedDeclaration": 97, + "src": "1730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "id": 109, + "nodeType": "ArrayTypeName", + "src": "1730:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "1784:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1768:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1813:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1797:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1797:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "usdcAddress", + "nameLocation": "1834:11:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1826:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1642:207:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1873:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + }, + "typeName": { + "id": 119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 118, + "name": "QueryResponse", + "nameLocations": [ + "1873:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "1873:13:0" + }, + "referencedDeclaration": 87, + "src": "1873:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "1872:22:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 286, + "nodeType": "FunctionDefinition", + "src": "2467:1023:0", + "body": { + "id": 285, + "nodeType": "Block", + "src": "2692:798:0", + "statements": [ + { + "assignments": [ + 215 + ], + "declarations": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "2705:6:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2698:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 213, + "name": "AToken", + "nameLocations": [ + "2698:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "2698:6:0" + }, + "referencedDeclaration": 19, + "src": "2698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "expression": { + "id": 216, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2728:6:0", + "memberName": "aToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:36:0" + }, + { + "assignments": [ + 221 + ], + "declarations": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "2750:15:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2740:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 219, + "name": "DebtToken", + "nameLocations": [ + "2740:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2740:9:0" + }, + "referencedDeclaration": 27, + "src": "2740:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 224, + "initialValue": { + "expression": { + "id": 222, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2768:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2782:15:0", + "memberName": "stableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 93, + "src": "2768:29:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2740:57:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "2813:17:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2803:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "DebtToken", + "nameLocations": [ + "2803:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2803:9:0" + }, + "referencedDeclaration": 27, + "src": "2803:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "expression": { + "id": 228, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2833:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2847:17:0", + "memberName": "variableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2833:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2803:61:0" + }, + { + "assignments": [ + 235 + ], + "declarations": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "2914:13:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2871:56:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 234, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 233, + "name": "LendingPool.ReserveConfigurationMap", + "nameLocations": [ + "2871:11:0", + "2883:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "2871:35:0" + }, + "referencedDeclaration": 37, + "src": "2871:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 240, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2960:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:0", + "typeDescriptions": {} + } + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2952:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 236, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "2930:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2935:16:0", + "memberName": "getConfiguration", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2930:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", + "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2871:97:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 247, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3029:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3021:7:0", + "typeDescriptions": {} + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3021:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 251, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3071:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3063:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3063:7:0", + "typeDescriptions": {} + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3063:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 255, + "name": "variableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3124:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3116:7:0", + "typeDescriptions": {} + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3116:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 259, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 260, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 257, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3163:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3163:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3233:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 262, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3216:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3223:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "3216:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3216:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 266, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3270:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3286:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3270:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3270:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 272, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 270, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3335:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3335:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 274, + "name": "configuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "3394:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3408:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3394:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 280, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3460:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:0", + "typeDescriptions": {} + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3460:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 276, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3434:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3446:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "3434:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3434:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 244, + "name": "ATokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2988:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", + "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3013:6:0", + "3046:15:0", + "3097:17:0", + "3152:9:0", + "3207:7:0", + "3251:17:0", + "3314:19:0", + "3379:13:0", + "3422:10:0" + ], + "names": [ + "aToken", + "stableDebtToken", + "variableDebtToken", + "allowance", + "balance", + "stableDebtBalance", + "variableDebtBalance", + "configuration", + "priceInETH" + ], + "nodeType": "FunctionCall", + "src": "2988:497:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "functionReturnParameters": 212, + "id": 284, + "nodeType": "Return", + "src": "2975:510:0" + } + ] + }, + "functionSelector": "0abe0bec", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "aTokenMetadata", + "nameLocation": "2476:14:0", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "pool", + "nameLocation": "2508:4:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2496:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 196, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 195, + "name": "LendingPool", + "nameLocations": [ + "2496:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "2496:11:0" + }, + "referencedDeclaration": 46, + "src": "2496:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2534:11:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2518:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 199, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 198, + "name": "AavePriceOracle", + "nameLocations": [ + "2518:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "2518:15:0" + }, + "referencedDeclaration": 54, + "src": "2518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "aTokenRequest", + "nameLocation": "2572:13:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2551:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + }, + "typeName": { + "id": 202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 201, + "name": "ATokenRequest", + "nameLocations": [ + "2551:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "2551:13:0" + }, + "referencedDeclaration": 97, + "src": "2551:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "account", + "nameLocation": "2607:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2591:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2591:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2636:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2620:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2490:157:0" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2669:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + }, + "typeName": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "ATokenMetadata", + "nameLocations": [ + "2669:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2669:14:0" + }, + "referencedDeclaration": 75, + "src": "2669:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2668:23:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 55, + "name": "CometQuery", + "nameLocations": [ + "1085:10:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1085:10:0" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1085:10:0" + } + ], + "canonicalName": "AaveV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 287, + 1268 + ], + "name": "AaveV2Query", + "nameLocation": "1070:11:0", + "scope": 288, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json b/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json new file mode 100644 index 0000000..8982cf3 --- /dev/null +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json @@ -0,0 +1,4012 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "getConfiguration", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "data", + "type": "uint256" + } + ], + "internalType": "struct LendingPool.ReserveConfigurationMap", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "getConfiguration(address)": "c44b11f7" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"data\",\"type\":\"uint256\"}],\"internalType\":\"struct LendingPool.ReserveConfigurationMap\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"LendingPool\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getConfiguration", + "outputs": [ + { + "internalType": "struct LendingPool.ReserveConfigurationMap", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "data", + "type": "uint256" + } + ] + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/AaveV2Query.sol": "LendingPool" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/AaveV2Query.sol": { + "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "urls": [ + "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", + "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + ], + "license": "UNLICENSED" + }, + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/AaveV2Query.sol", + "id": 288, + "exportedSymbols": { + "AToken": [ + 19 + ], + "AavePriceOracle": [ + 54 + ], + "AaveV2Query": [ + 287 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "DebtToken": [ + 27 + ], + "ERC20": [ + 630 + ], + "LendingPool": [ + 46 + ], + "LendingPoolAddressesProvider": [ + 34 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3454:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 2, + "nodeType": "ImportDirective", + "src": "65:26:0", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 288, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 19, + "nodeType": "ContractDefinition", + "src": "93:170:0", + "nodes": [ + { + "id": 11, + "nodeType": "FunctionDefinition", + "src": "114:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "123:9:0", + "parameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "owner", + "nameLocation": "141:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "133:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "spender", + "nameLocation": "156:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "148:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "132:32:0" + }, + "returnParameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "188:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "187:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 18, + "nodeType": "FunctionDefinition", + "src": "198:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "207:9:0", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "owner", + "nameLocation": "225:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "217:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "217:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "216:15:0" + }, + "returnParameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "255:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "254:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 19 + ], + "name": "AToken", + "nameLocation": "103:6:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 27, + "nodeType": "ContractDefinition", + "src": "265:89:0", + "nodes": [ + { + "id": 26, + "nodeType": "FunctionDefinition", + "src": "289:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "298:9:0", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "owner", + "nameLocation": "316:5:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "307:15:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "346:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:6:0" + }, + "scope": 27, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "DebtToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 27 + ], + "name": "DebtToken", + "nameLocation": "275:9:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 34, + "nodeType": "ContractDefinition", + "src": "356:111:0", + "nodes": [ + { + "id": 33, + "nodeType": "FunctionDefinition", + "src": "399:66:0", + "functionSelector": "fca513a8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriceOracle", + "nameLocation": "408:14:0", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:0" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "448:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 30, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29, + "name": "AavePriceOracle", + "nameLocations": [ + "448:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "448:15:0" + }, + "referencedDeclaration": 54, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "447:17:0" + }, + "scope": 34, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPoolAddressesProvider", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 34 + ], + "name": "LendingPoolAddressesProvider", + "nameLocation": "366:28:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 46, + "nodeType": "ContractDefinition", + "src": "469:489:0", + "nodes": [ + { + "id": 37, + "nodeType": "StructDefinition", + "src": "495:361:0", + "canonicalName": "LendingPool.ReserveConfigurationMap", + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "data", + "nameLocation": "847:4:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "839:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ReserveConfigurationMap", + "nameLocation": "502:23:0", + "scope": 46, + "visibility": "public" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "860:96:0", + "functionSelector": "c44b11f7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getConfiguration", + "nameLocation": "869:16:0", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "asset", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "885:15:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "924:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 42, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 41, + "name": "ReserveConfigurationMap", + "nameLocations": [ + "924:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "924:23:0" + }, + "referencedDeclaration": 37, + "src": "924:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "src": "923:32:0" + }, + "scope": 46, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 46 + ], + "name": "LendingPool", + "nameLocation": "479:11:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 54, + "nodeType": "ContractDefinition", + "src": "960:99:0", + "nodes": [ + { + "id": 53, + "nodeType": "FunctionDefinition", + "src": "990:67:0", + "functionSelector": "b3596f07", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetPrice", + "nameLocation": "999:13:0", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "asset", + "nameLocation": "1021:5:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1013:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1012:15:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1051:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:6:0" + }, + "scope": 54, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AavePriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 54 + ], + "name": "AavePriceOracle", + "nameLocation": "970:15:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 287, + "nodeType": "ContractDefinition", + "src": "1061:2431:0", + "nodes": [ + { + "id": 75, + "nodeType": "StructDefinition", + "src": "1100:248:0", + "canonicalName": "AaveV2Query.ATokenMetadata", + "members": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1136:6:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1128:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1128:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1156:15:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1148:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1185:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1177:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1177:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1213:9:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1208:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1233:7:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1228:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1228:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "stableDebtBalance", + "nameLocation": "1251:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1246:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1246:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "variableDebtBalance", + "nameLocation": "1279:19:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1274:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "1309:13:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1304:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "priceInETH", + "nameLocation": "1333:10:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1328:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1328:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenMetadata", + "nameLocation": "1107:14:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 87, + "nodeType": "StructDefinition", + "src": "1352:149:0", + "canonicalName": "AaveV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1384:15:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1379:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1422:6:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1405:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 79, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 78, + "name": "ATokenMetadata", + "nameLocations": [ + "1405:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "1405:14:0" + }, + "referencedDeclaration": 75, + "src": "1405:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 80, + "nodeType": "ArrayTypeName", + "src": "1405:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1461:10:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1434:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 83, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 82, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1434:26:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1434:26:0" + }, + "referencedDeclaration": 789, + "src": "1434:26:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "usdcPriceInETH", + "nameLocation": "1482:14:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1477:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 85, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1359:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 97, + "nodeType": "StructDefinition", + "src": "1505:109:0", + "canonicalName": "AaveV2Query.ATokenRequest", + "members": [ + { + "constant": false, + "id": 90, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1539:6:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1532:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 89, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 88, + "name": "AToken", + "nameLocations": [ + "1532:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "1532:6:0" + }, + "referencedDeclaration": 19, + "src": "1532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1561:15:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1551:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 92, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 91, + "name": "DebtToken", + "nameLocations": [ + "1551:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1551:9:0" + }, + "referencedDeclaration": 27, + "src": "1551:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1592:17:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1582:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 95, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 94, + "name": "DebtToken", + "nameLocations": [ + "1582:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1582:9:0" + }, + "referencedDeclaration": 27, + "src": "1582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenRequest", + "nameLocation": "1512:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 194, + "nodeType": "FunctionDefinition", + "src": "1618:845:0", + "body": { + "id": 193, + "nodeType": "Block", + "src": "1895:568:0", + "statements": [ + { + "assignments": [ + 124 + ], + "declarations": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1917:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1901:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 122, + "name": "AavePriceOracle", + "nameLocations": [ + "1901:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "1901:15:0" + }, + "referencedDeclaration": 54, + "src": "1901:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 128, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 125, + "name": "provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "1931:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:14:0", + "memberName": "getPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "1931:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", + "typeString": "function () view external returns (contract AavePriceOracle)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1901:55:0" + }, + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "aTokenCount", + "nameLocation": "1967:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 133, + "initialValue": { + "expression": { + "id": 131, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "1981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1989:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1981:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:33:0" + }, + { + "assignments": [ + 138 + ], + "declarations": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2025:6:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "2001:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 135, + "name": "ATokenMetadata", + "nameLocations": [ + "2001:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2001:14:0" + }, + "referencedDeclaration": 75, + "src": "2001:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 137, + "nodeType": "ArrayTypeName", + "src": "2001:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 145, + "initialValue": { + "arguments": [ + { + "id": 143, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2055:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2034:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 139, + "name": "ATokenMetadata", + "nameLocations": [ + "2038:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2038:14:0" + }, + "referencedDeclaration": 75, + "src": "2038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 141, + "nodeType": "ArrayTypeName", + "src": "2038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2034:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:66:0" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "2112:90:0", + "statements": [ + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 156, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "id": 158, + "indexExpression": { + "id": 157, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2127:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2120:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 160, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "2147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + { + "id": 161, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2153:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + { + "baseExpression": { + "id": 162, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 164, + "indexExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2166:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + } + }, + { + "id": 165, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 166, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 159, + "name": "aTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "2132:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" + } + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "src": "2120:75:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2120:75:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2090:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 151, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2090:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 171, + "initializationExpression": { + "assignments": [ + 147 + ], + "declarations": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "i", + "nameLocation": "2083:1:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "2078:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2078:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 149, + "initialValue": { + "hexValue": "30", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2078:10:0" + }, + "loopExpression": { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2107:3:0", + "subExpression": { + "id": 153, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2107:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2107:3:0" + }, + "nodeType": "ForStatement", + "src": "2073:129:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 175, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 176, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 173, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2268:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2262:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 178, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2313:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2358:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 181, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2382:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2374:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 179, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2341:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + { + "arguments": [ + { + "id": 189, + "name": "usdcAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2437:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 187, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2423:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "2411:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2411:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 172, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "2221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", + "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2245:15:0", + "2305:6:0", + "2329:10:0", + "2395:14:0" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState", + "usdcPriceInETH" + ], + "nodeType": "FunctionCall", + "src": "2221:237:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 121, + "id": 192, + "nodeType": "Return", + "src": "2208:250:0" + } + ] + }, + "functionSelector": "ec7d7f7a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMigratorData", + "nameLocation": "1627:15:0", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "provider", + "nameLocation": "1677:8:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1648:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "LendingPoolAddressesProvider", + "nameLocations": [ + "1648:28:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "1648:28:0" + }, + "referencedDeclaration": 34, + "src": "1648:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "pool", + "nameLocation": "1703:4:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1691:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "LendingPool", + "nameLocations": [ + "1691:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1691:11:0" + }, + "referencedDeclaration": 46, + "src": "1691:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "comet", + "nameLocation": "1719:5:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1713:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 104, + "name": "Comet", + "nameLocations": [ + "1713:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "1713:5:0" + }, + "referencedDeclaration": 598, + "src": "1713:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "aTokens", + "nameLocation": "1755:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1730:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 107, + "name": "ATokenRequest", + "nameLocations": [ + "1730:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "1730:13:0" + }, + "referencedDeclaration": 97, + "src": "1730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "id": 109, + "nodeType": "ArrayTypeName", + "src": "1730:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "1784:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1768:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1813:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1797:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1797:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "usdcAddress", + "nameLocation": "1834:11:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1826:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1642:207:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1873:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + }, + "typeName": { + "id": 119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 118, + "name": "QueryResponse", + "nameLocations": [ + "1873:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "1873:13:0" + }, + "referencedDeclaration": 87, + "src": "1873:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "1872:22:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 286, + "nodeType": "FunctionDefinition", + "src": "2467:1023:0", + "body": { + "id": 285, + "nodeType": "Block", + "src": "2692:798:0", + "statements": [ + { + "assignments": [ + 215 + ], + "declarations": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "2705:6:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2698:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 213, + "name": "AToken", + "nameLocations": [ + "2698:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "2698:6:0" + }, + "referencedDeclaration": 19, + "src": "2698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "expression": { + "id": 216, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2728:6:0", + "memberName": "aToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:36:0" + }, + { + "assignments": [ + 221 + ], + "declarations": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "2750:15:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2740:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 219, + "name": "DebtToken", + "nameLocations": [ + "2740:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2740:9:0" + }, + "referencedDeclaration": 27, + "src": "2740:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 224, + "initialValue": { + "expression": { + "id": 222, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2768:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2782:15:0", + "memberName": "stableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 93, + "src": "2768:29:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2740:57:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "2813:17:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2803:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "DebtToken", + "nameLocations": [ + "2803:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2803:9:0" + }, + "referencedDeclaration": 27, + "src": "2803:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "expression": { + "id": 228, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2833:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2847:17:0", + "memberName": "variableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2833:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2803:61:0" + }, + { + "assignments": [ + 235 + ], + "declarations": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "2914:13:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2871:56:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 234, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 233, + "name": "LendingPool.ReserveConfigurationMap", + "nameLocations": [ + "2871:11:0", + "2883:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "2871:35:0" + }, + "referencedDeclaration": 37, + "src": "2871:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 240, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2960:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:0", + "typeDescriptions": {} + } + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2952:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 236, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "2930:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2935:16:0", + "memberName": "getConfiguration", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2930:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", + "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2871:97:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 247, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3029:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3021:7:0", + "typeDescriptions": {} + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3021:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 251, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3071:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3063:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3063:7:0", + "typeDescriptions": {} + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3063:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 255, + "name": "variableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3124:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3116:7:0", + "typeDescriptions": {} + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3116:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 259, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 260, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 257, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3163:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3163:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3233:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 262, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3216:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3223:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "3216:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3216:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 266, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3270:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3286:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3270:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3270:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 272, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 270, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3335:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3335:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 274, + "name": "configuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "3394:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3408:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3394:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 280, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3460:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:0", + "typeDescriptions": {} + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3460:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 276, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3434:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3446:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "3434:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3434:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 244, + "name": "ATokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2988:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", + "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3013:6:0", + "3046:15:0", + "3097:17:0", + "3152:9:0", + "3207:7:0", + "3251:17:0", + "3314:19:0", + "3379:13:0", + "3422:10:0" + ], + "names": [ + "aToken", + "stableDebtToken", + "variableDebtToken", + "allowance", + "balance", + "stableDebtBalance", + "variableDebtBalance", + "configuration", + "priceInETH" + ], + "nodeType": "FunctionCall", + "src": "2988:497:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "functionReturnParameters": 212, + "id": 284, + "nodeType": "Return", + "src": "2975:510:0" + } + ] + }, + "functionSelector": "0abe0bec", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "aTokenMetadata", + "nameLocation": "2476:14:0", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "pool", + "nameLocation": "2508:4:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2496:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 196, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 195, + "name": "LendingPool", + "nameLocations": [ + "2496:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "2496:11:0" + }, + "referencedDeclaration": 46, + "src": "2496:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2534:11:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2518:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 199, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 198, + "name": "AavePriceOracle", + "nameLocations": [ + "2518:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "2518:15:0" + }, + "referencedDeclaration": 54, + "src": "2518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "aTokenRequest", + "nameLocation": "2572:13:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2551:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + }, + "typeName": { + "id": 202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 201, + "name": "ATokenRequest", + "nameLocations": [ + "2551:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "2551:13:0" + }, + "referencedDeclaration": 97, + "src": "2551:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "account", + "nameLocation": "2607:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2591:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2591:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2636:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2620:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2490:157:0" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2669:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + }, + "typeName": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "ATokenMetadata", + "nameLocations": [ + "2669:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2669:14:0" + }, + "referencedDeclaration": 75, + "src": "2669:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2668:23:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 55, + "name": "CometQuery", + "nameLocations": [ + "1085:10:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1085:10:0" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1085:10:0" + } + ], + "canonicalName": "AaveV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 287, + 1268 + ], + "name": "AaveV2Query", + "nameLocation": "1070:11:0", + "scope": 288, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json b/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json new file mode 100644 index 0000000..69c8522 --- /dev/null +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json @@ -0,0 +1,3986 @@ +{ + "abi": [ + { + "inputs": [], + "name": "getPriceOracle", + "outputs": [ + { + "internalType": "contract AavePriceOracle", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "getPriceOracle()": "fca513a8" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getPriceOracle\",\"outputs\":[{\"internalType\":\"contract AavePriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"LendingPoolAddressesProvider\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getPriceOracle", + "outputs": [ + { + "internalType": "contract AavePriceOracle", + "name": "", + "type": "address" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/AaveV2Query.sol": "LendingPoolAddressesProvider" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/AaveV2Query.sol": { + "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "urls": [ + "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", + "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + ], + "license": "UNLICENSED" + }, + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/AaveV2Query.sol", + "id": 288, + "exportedSymbols": { + "AToken": [ + 19 + ], + "AavePriceOracle": [ + 54 + ], + "AaveV2Query": [ + 287 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "DebtToken": [ + 27 + ], + "ERC20": [ + 630 + ], + "LendingPool": [ + 46 + ], + "LendingPoolAddressesProvider": [ + 34 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3454:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 2, + "nodeType": "ImportDirective", + "src": "65:26:0", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 288, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 19, + "nodeType": "ContractDefinition", + "src": "93:170:0", + "nodes": [ + { + "id": 11, + "nodeType": "FunctionDefinition", + "src": "114:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "123:9:0", + "parameters": { + "id": 7, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "owner", + "nameLocation": "141:5:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "133:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "133:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "spender", + "nameLocation": "156:7:0", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "148:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "132:32:0" + }, + "returnParameters": { + "id": 10, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11, + "src": "188:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "188:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "187:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 18, + "nodeType": "FunctionDefinition", + "src": "198:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "207:9:0", + "parameters": { + "id": 14, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "owner", + "nameLocation": "225:5:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "217:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "217:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "216:15:0" + }, + "returnParameters": { + "id": 17, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "255:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "255:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "254:6:0" + }, + "scope": 19, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 19 + ], + "name": "AToken", + "nameLocation": "103:6:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 27, + "nodeType": "ContractDefinition", + "src": "265:89:0", + "nodes": [ + { + "id": 26, + "nodeType": "FunctionDefinition", + "src": "289:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "298:9:0", + "parameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "owner", + "nameLocation": "316:5:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "308:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "307:15:0" + }, + "returnParameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "346:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "346:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "345:6:0" + }, + "scope": 27, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "DebtToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 27 + ], + "name": "DebtToken", + "nameLocation": "275:9:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 34, + "nodeType": "ContractDefinition", + "src": "356:111:0", + "nodes": [ + { + "id": 33, + "nodeType": "FunctionDefinition", + "src": "399:66:0", + "functionSelector": "fca513a8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPriceOracle", + "nameLocation": "408:14:0", + "parameters": { + "id": 28, + "nodeType": "ParameterList", + "parameters": [], + "src": "422:2:0" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "448:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 30, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 29, + "name": "AavePriceOracle", + "nameLocations": [ + "448:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "448:15:0" + }, + "referencedDeclaration": 54, + "src": "448:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "447:17:0" + }, + "scope": 34, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPoolAddressesProvider", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 34 + ], + "name": "LendingPoolAddressesProvider", + "nameLocation": "366:28:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 46, + "nodeType": "ContractDefinition", + "src": "469:489:0", + "nodes": [ + { + "id": 37, + "nodeType": "StructDefinition", + "src": "495:361:0", + "canonicalName": "LendingPool.ReserveConfigurationMap", + "members": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "data", + "nameLocation": "847:4:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "839:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ReserveConfigurationMap", + "nameLocation": "502:23:0", + "scope": 46, + "visibility": "public" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "860:96:0", + "functionSelector": "c44b11f7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getConfiguration", + "nameLocation": "869:16:0", + "parameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "asset", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "885:15:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "924:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 42, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 41, + "name": "ReserveConfigurationMap", + "nameLocations": [ + "924:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "924:23:0" + }, + "referencedDeclaration": 37, + "src": "924:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "src": "923:32:0" + }, + "scope": 46, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "LendingPool", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 46 + ], + "name": "LendingPool", + "nameLocation": "479:11:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 54, + "nodeType": "ContractDefinition", + "src": "960:99:0", + "nodes": [ + { + "id": 53, + "nodeType": "FunctionDefinition", + "src": "990:67:0", + "functionSelector": "b3596f07", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetPrice", + "nameLocation": "999:13:0", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "mutability": "mutable", + "name": "asset", + "nameLocation": "1021:5:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1013:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1013:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1012:15:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1051:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:6:0" + }, + "scope": 54, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "AavePriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 54 + ], + "name": "AavePriceOracle", + "nameLocation": "970:15:0", + "scope": 288, + "usedErrors": [] + }, + { + "id": 287, + "nodeType": "ContractDefinition", + "src": "1061:2431:0", + "nodes": [ + { + "id": 75, + "nodeType": "StructDefinition", + "src": "1100:248:0", + "canonicalName": "AaveV2Query.ATokenMetadata", + "members": [ + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1136:6:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1128:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1128:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1156:15:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1148:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 59, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1148:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1185:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1177:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 61, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1177:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1213:9:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1208:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1233:7:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1228:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1228:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "stableDebtBalance", + "nameLocation": "1251:17:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1246:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1246:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "variableDebtBalance", + "nameLocation": "1279:19:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1274:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1274:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "1309:13:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 71, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1304:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "priceInETH", + "nameLocation": "1333:10:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "1328:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1328:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenMetadata", + "nameLocation": "1107:14:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 87, + "nodeType": "StructDefinition", + "src": "1352:149:0", + "canonicalName": "AaveV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1384:15:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1379:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 76, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1422:6:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1405:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 79, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 78, + "name": "ATokenMetadata", + "nameLocations": [ + "1405:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "1405:14:0" + }, + "referencedDeclaration": 75, + "src": "1405:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 80, + "nodeType": "ArrayTypeName", + "src": "1405:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1461:10:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1434:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 83, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 82, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1434:26:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1434:26:0" + }, + "referencedDeclaration": 789, + "src": "1434:26:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "mutability": "mutable", + "name": "usdcPriceInETH", + "nameLocation": "1482:14:0", + "nodeType": "VariableDeclaration", + "scope": 87, + "src": "1477:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 85, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1359:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 97, + "nodeType": "StructDefinition", + "src": "1505:109:0", + "canonicalName": "AaveV2Query.ATokenRequest", + "members": [ + { + "constant": false, + "id": 90, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "1539:6:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1532:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 89, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 88, + "name": "AToken", + "nameLocations": [ + "1532:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "1532:6:0" + }, + "referencedDeclaration": 19, + "src": "1532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "1561:15:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1551:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 92, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 91, + "name": "DebtToken", + "nameLocations": [ + "1551:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1551:9:0" + }, + "referencedDeclaration": 27, + "src": "1551:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "1592:17:0", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "1582:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 95, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 94, + "name": "DebtToken", + "nameLocations": [ + "1582:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "1582:9:0" + }, + "referencedDeclaration": 27, + "src": "1582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "name": "ATokenRequest", + "nameLocation": "1512:13:0", + "scope": 287, + "visibility": "public" + }, + { + "id": 194, + "nodeType": "FunctionDefinition", + "src": "1618:845:0", + "body": { + "id": 193, + "nodeType": "Block", + "src": "1895:568:0", + "statements": [ + { + "assignments": [ + 124 + ], + "declarations": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "1917:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1901:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 123, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 122, + "name": "AavePriceOracle", + "nameLocations": [ + "1901:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "1901:15:0" + }, + "referencedDeclaration": 54, + "src": "1901:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 128, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 125, + "name": "provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "1931:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1940:14:0", + "memberName": "getPriceOracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "1931:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", + "typeString": "function () view external returns (contract AavePriceOracle)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1901:55:0" + }, + { + "assignments": [ + 130 + ], + "declarations": [ + { + "constant": false, + "id": 130, + "mutability": "mutable", + "name": "aTokenCount", + "nameLocation": "1967:11:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 133, + "initialValue": { + "expression": { + "id": 131, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "1981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1989:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1981:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:33:0" + }, + { + "assignments": [ + 138 + ], + "declarations": [ + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2025:6:0", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "2001:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 135, + "name": "ATokenMetadata", + "nameLocations": [ + "2001:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2001:14:0" + }, + "referencedDeclaration": 75, + "src": "2001:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 137, + "nodeType": "ArrayTypeName", + "src": "2001:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 145, + "initialValue": { + "arguments": [ + { + "id": 143, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2055:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2034:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 139, + "name": "ATokenMetadata", + "nameLocations": [ + "2038:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2038:14:0" + }, + "referencedDeclaration": 75, + "src": "2038:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "id": 141, + "nodeType": "ArrayTypeName", + "src": "2038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata[]" + } + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2034:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:66:0" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "2112:90:0", + "statements": [ + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 156, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2120:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + "id": 158, + "indexExpression": { + "id": 157, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2127:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2120:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 160, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "2147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + { + "id": 161, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2153:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + { + "baseExpression": { + "id": 162, + "name": "aTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" + } + }, + "id": 164, + "indexExpression": { + "id": 163, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2166:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + } + }, + { + "id": 165, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 166, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + { + "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 159, + "name": "aTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 286, + "src": "2132:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" + } + }, + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2132:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "src": "2120:75:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2120:75:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 150, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2090:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 151, + "name": "aTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 130, + "src": "2094:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2090:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 171, + "initializationExpression": { + "assignments": [ + 147 + ], + "declarations": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "i", + "nameLocation": "2083:1:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "2078:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2078:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 149, + "initialValue": { + "hexValue": "30", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2078:10:0" + }, + "loopExpression": { + "expression": { + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2107:3:0", + "subExpression": { + "id": 153, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 147, + "src": "2107:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 155, + "nodeType": "ExpressionStatement", + "src": "2107:3:0" + }, + "nodeType": "ForStatement", + "src": "2073:129:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 175, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 176, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 173, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2268:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2262:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2262:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 178, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "2313:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2358:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 181, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2382:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2374:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2374:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2374:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 179, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2341:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2341:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + { + "arguments": [ + { + "id": 189, + "name": "usdcAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2437:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 187, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2423:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "2411:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2411:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 172, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "2221:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", + "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2245:15:0", + "2305:6:0", + "2329:10:0", + "2395:14:0" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState", + "usdcPriceInETH" + ], + "nodeType": "FunctionCall", + "src": "2221:237:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 121, + "id": 192, + "nodeType": "Return", + "src": "2208:250:0" + } + ] + }, + "functionSelector": "ec7d7f7a", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMigratorData", + "nameLocation": "1627:15:0", + "parameters": { + "id": 117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "provider", + "nameLocation": "1677:8:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1648:37:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "LendingPoolAddressesProvider", + "nameLocations": [ + "1648:28:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 34, + "src": "1648:28:0" + }, + "referencedDeclaration": 34, + "src": "1648:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", + "typeString": "contract LendingPoolAddressesProvider" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "pool", + "nameLocation": "1703:4:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1691:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "LendingPool", + "nameLocations": [ + "1691:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "1691:11:0" + }, + "referencedDeclaration": 46, + "src": "1691:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "comet", + "nameLocation": "1719:5:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1713:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 105, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 104, + "name": "Comet", + "nameLocations": [ + "1713:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "1713:5:0" + }, + "referencedDeclaration": 598, + "src": "1713:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "aTokens", + "nameLocation": "1755:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1730:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 107, + "name": "ATokenRequest", + "nameLocations": [ + "1730:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "1730:13:0" + }, + "referencedDeclaration": 97, + "src": "1730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "id": 109, + "nodeType": "ArrayTypeName", + "src": "1730:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "account", + "nameLocation": "1784:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1768:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1813:7:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1797:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1797:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "usdcAddress", + "nameLocation": "1834:11:0", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1826:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1642:207:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "1873:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + }, + "typeName": { + "id": 119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 118, + "name": "QueryResponse", + "nameLocations": [ + "1873:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "1873:13:0" + }, + "referencedDeclaration": 87, + "src": "1873:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", + "typeString": "struct AaveV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "1872:22:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 286, + "nodeType": "FunctionDefinition", + "src": "2467:1023:0", + "body": { + "id": 285, + "nodeType": "Block", + "src": "2692:798:0", + "statements": [ + { + "assignments": [ + 215 + ], + "declarations": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "aToken", + "nameLocation": "2705:6:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2698:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + }, + "typeName": { + "id": 214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 213, + "name": "AToken", + "nameLocations": [ + "2698:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 19, + "src": "2698:6:0" + }, + "referencedDeclaration": 19, + "src": "2698:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "expression": { + "id": 216, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 217, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2728:6:0", + "memberName": "aToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "2714:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2698:36:0" + }, + { + "assignments": [ + 221 + ], + "declarations": [ + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "stableDebtToken", + "nameLocation": "2750:15:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2740:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 219, + "name": "DebtToken", + "nameLocations": [ + "2740:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2740:9:0" + }, + "referencedDeclaration": 27, + "src": "2740:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 224, + "initialValue": { + "expression": { + "id": 222, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2768:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2782:15:0", + "memberName": "stableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 93, + "src": "2768:29:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2740:57:0" + }, + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "variableDebtToken", + "nameLocation": "2813:17:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2803:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "DebtToken", + "nameLocations": [ + "2803:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27, + "src": "2803:9:0" + }, + "referencedDeclaration": 27, + "src": "2803:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "expression": { + "id": 228, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "2833:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" + } + }, + "id": 229, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2847:17:0", + "memberName": "variableDebtToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2833:31:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2803:61:0" + }, + { + "assignments": [ + 235 + ], + "declarations": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "configuration", + "nameLocation": "2914:13:0", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "2871:56:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + }, + "typeName": { + "id": 234, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 233, + "name": "LendingPool.ReserveConfigurationMap", + "nameLocations": [ + "2871:11:0", + "2883:23:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37, + "src": "2871:35:0" + }, + "referencedDeclaration": 37, + "src": "2871:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 240, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2960:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2952:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 238, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:0", + "typeDescriptions": {} + } + }, + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2952:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 236, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "2930:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2935:16:0", + "memberName": "getConfiguration", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2930:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", + "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2930:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2871:97:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 247, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3029:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3021:7:0", + "typeDescriptions": {} + } + }, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3021:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 251, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3071:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3063:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3063:7:0", + "typeDescriptions": {} + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3063:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 255, + "name": "variableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3124:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + ], + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3116:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3116:7:0", + "typeDescriptions": {} + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3116:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 259, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3180:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 260, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "3189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 257, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3170:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3163:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3163:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3233:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 262, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3216:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3223:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "3216:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3216:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3296:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 266, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3270:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3286:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3270:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3270:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 272, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3361:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 270, + "name": "stableDebtToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "3335:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DebtToken_$27", + "typeString": "contract DebtToken" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3351:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26, + "src": "3335:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 274, + "name": "configuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "3394:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", + "typeString": "struct LendingPool.ReserveConfigurationMap memory" + } + }, + "id": 275, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3408:4:0", + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 36, + "src": "3394:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 280, + "name": "aToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "3468:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AToken_$19", + "typeString": "contract AToken" + } + ], + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3460:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3460:7:0", + "typeDescriptions": {} + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3460:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 276, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 200, + "src": "3434:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3446:13:0", + "memberName": "getAssetPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "3434:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3434:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 244, + "name": "ATokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "2988:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", + "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3013:6:0", + "3046:15:0", + "3097:17:0", + "3152:9:0", + "3207:7:0", + "3251:17:0", + "3314:19:0", + "3379:13:0", + "3422:10:0" + ], + "names": [ + "aToken", + "stableDebtToken", + "variableDebtToken", + "allowance", + "balance", + "stableDebtBalance", + "variableDebtBalance", + "configuration", + "priceInETH" + ], + "nodeType": "FunctionCall", + "src": "2988:497:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata memory" + } + }, + "functionReturnParameters": 212, + "id": 284, + "nodeType": "Return", + "src": "2975:510:0" + } + ] + }, + "functionSelector": "0abe0bec", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "aTokenMetadata", + "nameLocation": "2476:14:0", + "parameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "pool", + "nameLocation": "2508:4:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2496:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + }, + "typeName": { + "id": 196, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 195, + "name": "LendingPool", + "nameLocations": [ + "2496:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 46, + "src": "2496:11:0" + }, + "referencedDeclaration": 46, + "src": "2496:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LendingPool_$46", + "typeString": "contract LendingPool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2534:11:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2518:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + }, + "typeName": { + "id": 199, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 198, + "name": "AavePriceOracle", + "nameLocations": [ + "2518:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 54, + "src": "2518:15:0" + }, + "referencedDeclaration": 54, + "src": "2518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AavePriceOracle_$54", + "typeString": "contract AavePriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 203, + "mutability": "mutable", + "name": "aTokenRequest", + "nameLocation": "2572:13:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2551:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + }, + "typeName": { + "id": 202, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 201, + "name": "ATokenRequest", + "nameLocations": [ + "2551:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 97, + "src": "2551:13:0" + }, + "referencedDeclaration": 97, + "src": "2551:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeString": "struct AaveV2Query.ATokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 205, + "mutability": "mutable", + "name": "account", + "nameLocation": "2607:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2591:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2591:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2636:7:0", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2620:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2490:157:0" + }, + "returnParameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 286, + "src": "2669:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + }, + "typeName": { + "id": 210, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 209, + "name": "ATokenMetadata", + "nameLocations": [ + "2669:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 75, + "src": "2669:14:0" + }, + "referencedDeclaration": 75, + "src": "2669:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", + "typeString": "struct AaveV2Query.ATokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2668:23:0" + }, + "scope": 287, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 55, + "name": "CometQuery", + "nameLocations": [ + "1085:10:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1085:10:0" + }, + "id": 56, + "nodeType": "InheritanceSpecifier", + "src": "1085:10:0" + } + ], + "canonicalName": "AaveV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 287, + 1268 + ], + "name": "AaveV2Query", + "nameLocation": "1070:11:0", + "scope": 288, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CometQuery.sol/Comet.json b/web/helpers/Sleuth/out/CometQuery.sol/Comet.json new file mode 100644 index 0000000..01f2694 --- /dev/null +++ b/web/helpers/Sleuth/out/CometQuery.sol/Comet.json @@ -0,0 +1,15039 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseAccrualScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseBorrowMin", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseIndexScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseMinForRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseScale", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseTokenPriceFeed", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "baseTrackingAccrued", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseTrackingBorrowSpeed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseTrackingSupplySpeed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "borrowBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "borrowKink", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "borrowPerSecondInterestRateBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "borrowPerSecondInterestRateSlopeHigh", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "borrowPerSecondInterestRateSlopeLow", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "collateralBalanceOf", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "extensionDelegate", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "factorScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "i", + "type": "uint8" + } + ], + "name": "getAssetInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint8", + "name": "offset", + "type": "uint8" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint64", + "name": "scale", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "borrowCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidateCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidationFactor", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "supplyCap", + "type": "uint128" + } + ], + "internalType": "struct Comet.AssetInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "getAssetInfoByAddress", + "outputs": [ + { + "components": [ + { + "internalType": "uint8", + "name": "offset", + "type": "uint8" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint64", + "name": "scale", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "borrowCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidateCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidationFactor", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "supplyCap", + "type": "uint128" + } + ], + "internalType": "struct Comet.AssetInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "utilization", + "type": "uint256" + } + ], + "name": "getBorrowRate", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "name": "getCollateralReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + } + ], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getReserves", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "utilization", + "type": "uint256" + } + ], + "name": "getSupplyRate", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getUtilization", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "governor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isBorrowCollateralized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isLiquidatable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxAssets", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "numAssets", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseGuardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "priceScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "baseAmount", + "type": "uint256" + } + ], + "name": "quoteCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "storeFrontPriceFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "supplyKink", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "supplyPerSecondInterestRateBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "supplyPerSecondInterestRateSlopeHigh", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "supplyPerSecondInterestRateSlopeLow", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "targetReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalBorrow", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalsBasic", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "baseSupplyIndex", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "baseBorrowIndex", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "trackingSupplyIndex", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "trackingBorrowIndex", + "type": "uint64" + }, + { + "internalType": "uint104", + "name": "totalSupplyBase", + "type": "uint104" + }, + { + "internalType": "uint104", + "name": "totalBorrowBase", + "type": "uint104" + }, + { + "internalType": "uint40", + "name": "lastAccrualTime", + "type": "uint40" + }, + { + "internalType": "uint8", + "name": "pauseFlags", + "type": "uint8" + } + ], + "internalType": "struct Comet.TotalsBasic", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "name": "totalsCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "trackingIndexScale", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "balanceOf(address)": "70a08231", + "baseAccrualScale()": "a20ed596", + "baseBorrowMin()": "300e6beb", + "baseIndexScale()": "96e7a9c1", + "baseMinForRewards()": "9364e18a", + "baseScale()": "44c1e5eb", + "baseToken()": "c55dae63", + "baseTokenPriceFeed()": "e7dad6bd", + "baseTrackingAccrued(address)": "ab9ba7f4", + "baseTrackingBorrowSpeed()": "9ea99a5a", + "baseTrackingSupplySpeed()": "189bb2f1", + "borrowBalanceOf(address)": "374c49b4", + "borrowKink()": "9241a561", + "borrowPerSecondInterestRateBase()": "7914acc7", + "borrowPerSecondInterestRateSlopeHigh()": "2a48cf12", + "borrowPerSecondInterestRateSlopeLow()": "2d05670b", + "collateralBalanceOf(address,address)": "5c2549ee", + "extensionDelegate()": "44ff241d", + "factorScale()": "0f21d96b", + "getAssetInfo(uint8)": "c8c7fe6b", + "getAssetInfoByAddress(address)": "3b3bec2e", + "getBorrowRate(uint256)": "9fa83b5a", + "getCollateralReserves(address)": "9ff567f8", + "getPrice(address)": "41976e09", + "getReserves()": "0902f1ac", + "getSupplyRate(uint256)": "d955759d", + "getUtilization()": "7eb71131", + "governor()": "0c340a24", + "isBorrowCollateralized(address)": "38aa813f", + "isLiquidatable(address)": "042e02cf", + "maxAssets()": "94b2294b", + "numAssets()": "a46fe83b", + "pauseGuardian()": "24a3d622", + "priceScale()": "a0fbddaf", + "quoteCollateral(address,uint256)": "7ac88ed1", + "storeFrontPriceFactor()": "1f5954bd", + "supplyKink()": "a5b4ff79", + "supplyPerSecondInterestRateBase()": "94920cca", + "supplyPerSecondInterestRateSlopeHigh()": "804de71f", + "supplyPerSecondInterestRateSlopeLow()": "5a94b8d1", + "targetReserves()": "32176c49", + "totalBorrow()": "8285ef40", + "totalSupply()": "18160ddd", + "totalsBasic()": "b9f0baf7", + "totalsCollateral(address)": "59e017bd", + "trackingIndexScale()": "aba7f15e" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseAccrualScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseBorrowMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseIndexScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseMinForRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseScale\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseTokenPriceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"baseTrackingAccrued\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseTrackingBorrowSpeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseTrackingSupplySpeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowKink\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowPerSecondInterestRateBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowPerSecondInterestRateSlopeHigh\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowPerSecondInterestRateSlopeLow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"collateralBalanceOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extensionDelegate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factorScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"i\",\"type\":\"uint8\"}],\"name\":\"getAssetInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"offset\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"scale\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"borrowCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"supplyCap\",\"type\":\"uint128\"}],\"internalType\":\"struct Comet.AssetInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getAssetInfoByAddress\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"offset\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"scale\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"borrowCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"supplyCap\",\"type\":\"uint128\"}],\"internalType\":\"struct Comet.AssetInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"utilization\",\"type\":\"uint256\"}],\"name\":\"getBorrowRate\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getCollateralReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"utilization\",\"type\":\"uint256\"}],\"name\":\"getSupplyRate\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUtilization\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isBorrowCollateralized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isLiquidatable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAssets\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numAssets\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGuardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"}],\"name\":\"quoteCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeFrontPriceFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyKink\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyPerSecondInterestRateBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyPerSecondInterestRateSlopeHigh\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyPerSecondInterestRateSlopeLow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBorrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalsBasic\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"baseSupplyIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"baseBorrowIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"trackingSupplyIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"trackingBorrowIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint104\",\"name\":\"totalSupplyBase\",\"type\":\"uint104\"},{\"internalType\":\"uint104\",\"name\":\"totalBorrowBase\",\"type\":\"uint104\"},{\"internalType\":\"uint40\",\"name\":\"lastAccrualTime\",\"type\":\"uint40\"},{\"internalType\":\"uint8\",\"name\":\"pauseFlags\",\"type\":\"uint8\"}],\"internalType\":\"struct Comet.TotalsBasic\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalsCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trackingIndexScale\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"Comet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseAccrualScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseBorrowMin", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseIndexScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseMinForRewards", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseScale", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseTokenPriceFeed", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "baseTrackingAccrued", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseTrackingBorrowSpeed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "baseTrackingSupplySpeed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "borrowBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "borrowKink", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "borrowPerSecondInterestRateBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "borrowPerSecondInterestRateSlopeHigh", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "borrowPerSecondInterestRateSlopeLow", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralBalanceOf", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "extensionDelegate", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "factorScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "i", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAssetInfo", + "outputs": [ + { + "internalType": "struct Comet.AssetInfo", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "offset", + "type": "uint8" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint64", + "name": "scale", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "borrowCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidateCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidationFactor", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "supplyCap", + "type": "uint128" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getAssetInfoByAddress", + "outputs": [ + { + "internalType": "struct Comet.AssetInfo", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint8", + "name": "offset", + "type": "uint8" + }, + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint64", + "name": "scale", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "borrowCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidateCollateralFactor", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "liquidationFactor", + "type": "uint64" + }, + { + "internalType": "uint128", + "name": "supplyCap", + "type": "uint128" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "utilization", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getBorrowRate", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getCollateralReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getReserves", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "utilization", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getSupplyRate", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getUtilization", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "governor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isBorrowCollateralized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isLiquidatable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "maxAssets", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "numAssets", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "pauseGuardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "priceScale", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "asset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "baseAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "quoteCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "storeFrontPriceFactor", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "supplyKink", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "supplyPerSecondInterestRateBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "supplyPerSecondInterestRateSlopeHigh", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "supplyPerSecondInterestRateSlopeLow", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "targetReserves", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalBorrow", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalsBasic", + "outputs": [ + { + "internalType": "struct Comet.TotalsBasic", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint64", + "name": "baseSupplyIndex", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "baseBorrowIndex", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "trackingSupplyIndex", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "trackingBorrowIndex", + "type": "uint64" + }, + { + "internalType": "uint104", + "name": "totalSupplyBase", + "type": "uint104" + }, + { + "internalType": "uint104", + "name": "totalBorrowBase", + "type": "uint104" + }, + { + "internalType": "uint40", + "name": "lastAccrualTime", + "type": "uint40" + }, + { + "internalType": "uint8", + "name": "pauseFlags", + "type": "uint8" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "totalsCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "trackingIndexScale", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CometQuery.sol": "Comet" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CometQuery.sol", + "id": 1269, + "exportedSymbols": { + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "ERC20": [ + 630 + ] + }, + "nodeType": "SourceUnit", + "src": "39:11860:1", + "nodes": [ + { + "id": 289, + "nodeType": "PragmaDirective", + "src": "39:24:1", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 598, + "nodeType": "ContractDefinition", + "src": "65:3743:1", + "nodes": [ + { + "id": 306, + "nodeType": "StructDefinition", + "src": "85:226:1", + "canonicalName": "Comet.AssetInfo", + "members": [ + { + "constant": false, + "id": 291, + "mutability": "mutable", + "name": "offset", + "nameLocation": "114:6:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "108:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 290, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "108:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 293, + "mutability": "mutable", + "name": "asset", + "nameLocation": "134:5:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "126:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "126:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 295, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "153:9:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "145:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 297, + "mutability": "mutable", + "name": "scale", + "nameLocation": "175:5:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "168:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 296, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 299, + "mutability": "mutable", + "name": "borrowCollateralFactor", + "nameLocation": "193:22:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "186:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 298, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "186:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "228:25:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "221:32:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 300, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "221:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "266:17:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "259:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 302, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "259:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "297:9:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "289:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 304, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "289:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "AssetInfo", + "nameLocation": "92:9:1", + "scope": 598, + "visibility": "public" + }, + { + "id": 323, + "nodeType": "StructDefinition", + "src": "315:252:1", + "canonicalName": "Comet.TotalsBasic", + "members": [ + { + "constant": false, + "id": 308, + "mutability": "mutable", + "name": "baseSupplyIndex", + "nameLocation": "347:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "340:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 307, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 310, + "mutability": "mutable", + "name": "baseBorrowIndex", + "nameLocation": "375:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "368:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 309, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "368:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "trackingSupplyIndex", + "nameLocation": "403:19:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "396:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 311, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "trackingBorrowIndex", + "nameLocation": "435:19:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "428:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 313, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "428:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 316, + "mutability": "mutable", + "name": "totalSupplyBase", + "nameLocation": "468:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "460:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 315, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "totalBorrowBase", + "nameLocation": "497:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "489:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 317, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "489:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "lastAccrualTime", + "nameLocation": "525:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "518:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 319, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "518:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "mutability": "mutable", + "name": "pauseFlags", + "nameLocation": "552:10:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "546:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 321, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "546:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "TotalsBasic", + "nameLocation": "322:11:1", + "scope": 598, + "visibility": "public" + }, + { + "id": 332, + "nodeType": "FunctionDefinition", + "src": "571:86:1", + "functionSelector": "7ac88ed1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "quoteCollateral", + "nameLocation": "580:15:1", + "parameters": { + "id": 328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "asset", + "nameLocation": "604:5:1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "596:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "596:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "baseAmount", + "nameLocation": "616:10:1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "611:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "595:32:1" + }, + "returnParameters": { + "id": 331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 330, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "651:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 329, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "651:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "650:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 340, + "nodeType": "FunctionDefinition", + "src": "661:72:1", + "functionSelector": "c8c7fe6b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetInfo", + "nameLocation": "670:12:1", + "parameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "i", + "nameLocation": "689:1:1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "683:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 333, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "682:9:1" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "715:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 337, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 336, + "name": "AssetInfo", + "nameLocations": [ + "715:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "715:9:1" + }, + "referencedDeclaration": 306, + "src": "715:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "src": "714:18:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 348, + "nodeType": "FunctionDefinition", + "src": "737:87:1", + "functionSelector": "3b3bec2e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetInfoByAddress", + "nameLocation": "746:21:1", + "parameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 342, + "mutability": "mutable", + "name": "asset", + "nameLocation": "776:5:1", + "nodeType": "VariableDeclaration", + "scope": 348, + "src": "768:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "768:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "767:15:1" + }, + "returnParameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 348, + "src": "806:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 345, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 344, + "name": "AssetInfo", + "nameLocations": [ + "806:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "806:9:1" + }, + "referencedDeclaration": 306, + "src": "806:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "src": "805:18:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 355, + "nodeType": "FunctionDefinition", + "src": "828:75:1", + "functionSelector": "9ff567f8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getCollateralReserves", + "nameLocation": "837:21:1", + "parameters": { + "id": 351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 350, + "mutability": "mutable", + "name": "asset", + "nameLocation": "867:5:1", + "nodeType": "VariableDeclaration", + "scope": 355, + "src": "859:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "859:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "858:15:1" + }, + "returnParameters": { + "id": 354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 353, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 355, + "src": "897:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 352, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "897:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "896:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 360, + "nodeType": "FunctionDefinition", + "src": "907:51:1", + "functionSelector": "0902f1ac", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nameLocation": "916:11:1", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "927:2:1" + }, + "returnParameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "953:3:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 357, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "953:3:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "952:5:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 367, + "nodeType": "FunctionDefinition", + "src": "962:66:1", + "functionSelector": "41976e09", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nameLocation": "971:8:1", + "parameters": { + "id": 363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 362, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "988:9:1", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "980:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "979:19:1" + }, + "returnParameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "1022:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 364, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1022:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1021:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 374, + "nodeType": "FunctionDefinition", + "src": "1032:78:1", + "functionSelector": "38aa813f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isBorrowCollateralized", + "nameLocation": "1041:22:1", + "parameters": { + "id": 370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "account", + "nameLocation": "1072:7:1", + "nodeType": "VariableDeclaration", + "scope": 374, + "src": "1064:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 368, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1063:17:1" + }, + "returnParameters": { + "id": 373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 374, + "src": "1104:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 371, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1104:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1103:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 381, + "nodeType": "FunctionDefinition", + "src": "1114:70:1", + "functionSelector": "042e02cf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isLiquidatable", + "nameLocation": "1123:14:1", + "parameters": { + "id": 377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 376, + "mutability": "mutable", + "name": "account", + "nameLocation": "1146:7:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "1138:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1138:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1137:17:1" + }, + "returnParameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "1178:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1178:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1177:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 386, + "nodeType": "FunctionDefinition", + "src": "1188:55:1", + "functionSelector": "18160ddd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1197:11:1", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [], + "src": "1208:2:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1234:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1233:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 391, + "nodeType": "FunctionDefinition", + "src": "1247:55:1", + "functionSelector": "8285ef40", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalBorrow", + "nameLocation": "1256:11:1", + "parameters": { + "id": 387, + "nodeType": "ParameterList", + "parameters": [], + "src": "1267:2:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1293:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1292:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 398, + "nodeType": "FunctionDefinition", + "src": "1306:66:1", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1315:9:1", + "parameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1333:5:1", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1325:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1325:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1324:15:1" + }, + "returnParameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1363:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1362:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 405, + "nodeType": "FunctionDefinition", + "src": "1376:74:1", + "functionSelector": "374c49b4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceOf", + "nameLocation": "1385:15:1", + "parameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "account", + "nameLocation": "1409:7:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1401:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1401:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1400:17:1" + }, + "returnParameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1441:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1441:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1440:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 412, + "nodeType": "FunctionDefinition", + "src": "1454:72:1", + "functionSelector": "d955759d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSupplyRate", + "nameLocation": "1463:13:1", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "1482:11:1", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1477:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1476:18:1" + }, + "returnParameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1518:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 409, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1518:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1517:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 419, + "nodeType": "FunctionDefinition", + "src": "1530:72:1", + "functionSelector": "9fa83b5a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getBorrowRate", + "nameLocation": "1539:13:1", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "1558:11:1", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1553:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 413, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1553:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1552:18:1" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1594:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 416, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1594:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1593:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 424, + "nodeType": "FunctionDefinition", + "src": "1606:55:1", + "functionSelector": "7eb71131", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUtilization", + "nameLocation": "1615:14:1", + "parameters": { + "id": 420, + "nodeType": "ParameterList", + "parameters": [], + "src": "1629:2:1" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 422, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "1655:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1655:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1654:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 429, + "nodeType": "FunctionDefinition", + "src": "1665:52:1", + "functionSelector": "0c340a24", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "governor", + "nameLocation": "1674:8:1", + "parameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [], + "src": "1682:2:1" + }, + "returnParameters": { + "id": 428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 427, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "1708:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1707:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 434, + "nodeType": "FunctionDefinition", + "src": "1721:57:1", + "functionSelector": "24a3d622", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "pauseGuardian", + "nameLocation": "1730:13:1", + "parameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "1743:2:1" + }, + "returnParameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 432, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 434, + "src": "1769:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1768:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 439, + "nodeType": "FunctionDefinition", + "src": "1782:53:1", + "functionSelector": "c55dae63", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseToken", + "nameLocation": "1791:9:1", + "parameters": { + "id": 435, + "nodeType": "ParameterList", + "parameters": [], + "src": "1800:2:1" + }, + "returnParameters": { + "id": 438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 437, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "1826:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1825:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 444, + "nodeType": "FunctionDefinition", + "src": "1839:62:1", + "functionSelector": "e7dad6bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTokenPriceFeed", + "nameLocation": "1848:18:1", + "parameters": { + "id": 440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1866:2:1" + }, + "returnParameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 444, + "src": "1892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 441, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1892:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1891:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 449, + "nodeType": "FunctionDefinition", + "src": "1905:61:1", + "functionSelector": "44ff241d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "extensionDelegate", + "nameLocation": "1914:17:1", + "parameters": { + "id": 445, + "nodeType": "ParameterList", + "parameters": [], + "src": "1931:2:1" + }, + "returnParameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 449, + "src": "1957:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1957:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1956:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 454, + "nodeType": "FunctionDefinition", + "src": "1970:51:1", + "functionSelector": "a5b4ff79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyKink", + "nameLocation": "1979:10:1", + "parameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [], + "src": "1989:2:1" + }, + "returnParameters": { + "id": 453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 452, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 454, + "src": "2015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2014:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 459, + "nodeType": "FunctionDefinition", + "src": "2025:76:1", + "functionSelector": "5a94b8d1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateSlopeLow", + "nameLocation": "2034:35:1", + "parameters": { + "id": 455, + "nodeType": "ParameterList", + "parameters": [], + "src": "2069:2:1" + }, + "returnParameters": { + "id": 458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "2095:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 456, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2094:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 464, + "nodeType": "FunctionDefinition", + "src": "2105:77:1", + "functionSelector": "804de71f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateSlopeHigh", + "nameLocation": "2114:36:1", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "2150:2:1" + }, + "returnParameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 464, + "src": "2176:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2175:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 469, + "nodeType": "FunctionDefinition", + "src": "2186:72:1", + "functionSelector": "94920cca", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateBase", + "nameLocation": "2195:31:1", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "2226:2:1" + }, + "returnParameters": { + "id": 468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 467, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "2252:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 466, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2252:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2251:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 474, + "nodeType": "FunctionDefinition", + "src": "2262:51:1", + "functionSelector": "9241a561", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowKink", + "nameLocation": "2271:10:1", + "parameters": { + "id": 470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2281:2:1" + }, + "returnParameters": { + "id": 473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 472, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "2307:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 471, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2307:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2306:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 479, + "nodeType": "FunctionDefinition", + "src": "2317:76:1", + "functionSelector": "2d05670b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateSlopeLow", + "nameLocation": "2326:35:1", + "parameters": { + "id": 475, + "nodeType": "ParameterList", + "parameters": [], + "src": "2361:2:1" + }, + "returnParameters": { + "id": 478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 477, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "2387:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 476, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2387:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2386:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 484, + "nodeType": "FunctionDefinition", + "src": "2397:77:1", + "functionSelector": "2a48cf12", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateSlopeHigh", + "nameLocation": "2406:36:1", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2442:2:1" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "2468:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2468:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2467:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 489, + "nodeType": "FunctionDefinition", + "src": "2478:72:1", + "functionSelector": "7914acc7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateBase", + "nameLocation": "2487:31:1", + "parameters": { + "id": 485, + "nodeType": "ParameterList", + "parameters": [], + "src": "2518:2:1" + }, + "returnParameters": { + "id": 488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 487, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 489, + "src": "2544:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 486, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2544:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2543:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 494, + "nodeType": "FunctionDefinition", + "src": "2554:62:1", + "functionSelector": "1f5954bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "storeFrontPriceFactor", + "nameLocation": "2563:21:1", + "parameters": { + "id": 490, + "nodeType": "ParameterList", + "parameters": [], + "src": "2584:2:1" + }, + "returnParameters": { + "id": 493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 492, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 494, + "src": "2610:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2610:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2609:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 499, + "nodeType": "FunctionDefinition", + "src": "2620:50:1", + "functionSelector": "44c1e5eb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseScale", + "nameLocation": "2629:9:1", + "parameters": { + "id": 495, + "nodeType": "ParameterList", + "parameters": [], + "src": "2638:2:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 499, + "src": "2664:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2664:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2663:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 504, + "nodeType": "FunctionDefinition", + "src": "2674:59:1", + "functionSelector": "aba7f15e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "trackingIndexScale", + "nameLocation": "2683:18:1", + "parameters": { + "id": 500, + "nodeType": "ParameterList", + "parameters": [], + "src": "2701:2:1" + }, + "returnParameters": { + "id": 503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "2727:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2727:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2726:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 509, + "nodeType": "FunctionDefinition", + "src": "2737:64:1", + "functionSelector": "189bb2f1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingSupplySpeed", + "nameLocation": "2746:23:1", + "parameters": { + "id": 505, + "nodeType": "ParameterList", + "parameters": [], + "src": "2769:2:1" + }, + "returnParameters": { + "id": 508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 507, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "2795:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2794:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 514, + "nodeType": "FunctionDefinition", + "src": "2805:64:1", + "functionSelector": "9ea99a5a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingBorrowSpeed", + "nameLocation": "2814:23:1", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "2837:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "2863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2862:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 519, + "nodeType": "FunctionDefinition", + "src": "2873:58:1", + "functionSelector": "9364e18a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseMinForRewards", + "nameLocation": "2882:17:1", + "parameters": { + "id": 515, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:2:1" + }, + "returnParameters": { + "id": 518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 517, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "2925:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 516, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2925:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2924:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 524, + "nodeType": "FunctionDefinition", + "src": "2935:54:1", + "functionSelector": "300e6beb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseBorrowMin", + "nameLocation": "2944:13:1", + "parameters": { + "id": 520, + "nodeType": "ParameterList", + "parameters": [], + "src": "2957:2:1" + }, + "returnParameters": { + "id": 523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "2983:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2983:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2982:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 529, + "nodeType": "FunctionDefinition", + "src": "2993:55:1", + "functionSelector": "32176c49", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "targetReserves", + "nameLocation": "3002:14:1", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [], + "src": "3016:2:1" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "3042:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3042:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3041:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 534, + "nodeType": "FunctionDefinition", + "src": "3052:51:1", + "functionSelector": "a46fe83b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "numAssets", + "nameLocation": "3061:9:1", + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [], + "src": "3070:2:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "3096:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 531, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3096:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3095:7:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 543, + "nodeType": "FunctionDefinition", + "src": "3107:93:1", + "functionSelector": "5c2549ee", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collateralBalanceOf", + "nameLocation": "3116:19:1", + "parameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "account", + "nameLocation": "3144:7:1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3136:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3136:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "asset", + "nameLocation": "3161:5:1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3153:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3153:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3135:32:1" + }, + "returnParameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 541, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3191:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 540, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "3191:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "3190:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 550, + "nodeType": "FunctionDefinition", + "src": "3204:77:1", + "functionSelector": "ab9ba7f4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingAccrued", + "nameLocation": "3213:19:1", + "parameters": { + "id": 546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "account", + "nameLocation": "3241:7:1", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "3233:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:17:1" + }, + "returnParameters": { + "id": 549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "3273:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 547, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3273:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3272:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 555, + "nodeType": "FunctionDefinition", + "src": "3285:59:1", + "functionSelector": "a20ed596", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseAccrualScale", + "nameLocation": "3294:16:1", + "parameters": { + "id": 551, + "nodeType": "ParameterList", + "parameters": [], + "src": "3310:2:1" + }, + "returnParameters": { + "id": 554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "3336:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 552, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3336:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3335:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 560, + "nodeType": "FunctionDefinition", + "src": "3348:57:1", + "functionSelector": "96e7a9c1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseIndexScale", + "nameLocation": "3357:14:1", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [], + "src": "3371:2:1" + }, + "returnParameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "3397:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 557, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3397:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3396:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 565, + "nodeType": "FunctionDefinition", + "src": "3409:54:1", + "functionSelector": "0f21d96b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factorScale", + "nameLocation": "3418:11:1", + "parameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [], + "src": "3429:2:1" + }, + "returnParameters": { + "id": 564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 565, + "src": "3455:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 562, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3455:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3454:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 570, + "nodeType": "FunctionDefinition", + "src": "3467:53:1", + "functionSelector": "a0fbddaf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "priceScale", + "nameLocation": "3476:10:1", + "parameters": { + "id": 566, + "nodeType": "ParameterList", + "parameters": [], + "src": "3486:2:1" + }, + "returnParameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 568, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3512:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 567, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3512:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3511:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 575, + "nodeType": "FunctionDefinition", + "src": "3524:51:1", + "functionSelector": "94b2294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "maxAssets", + "nameLocation": "3533:9:1", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [], + "src": "3542:2:1" + }, + "returnParameters": { + "id": 574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 575, + "src": "3568:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 572, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3568:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3567:7:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 581, + "nodeType": "FunctionDefinition", + "src": "3579:66:1", + "functionSelector": "b9f0baf7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalsBasic", + "nameLocation": "3588:11:1", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [], + "src": "3599:2:1" + }, + "returnParameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 579, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "3625:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic" + }, + "typeName": { + "id": 578, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 577, + "name": "TotalsBasic", + "nameLocations": [ + "3625:11:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 323, + "src": "3625:11:1" + }, + "referencedDeclaration": 323, + "src": "3625:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", + "typeString": "struct Comet.TotalsBasic" + } + }, + "visibility": "internal" + } + ], + "src": "3624:20:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 588, + "nodeType": "FunctionDefinition", + "src": "3649:70:1", + "functionSelector": "59e017bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalsCollateral", + "nameLocation": "3658:16:1", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "token", + "nameLocation": "3683:5:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "3675:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3675:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3674:15:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "3713:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3713:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3712:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 597, + "nodeType": "FunctionDefinition", + "src": "3723:83:1", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3732:9:1", + "parameters": { + "id": 593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3750:5:1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3742:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3742:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3765:7:1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3757:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3741:32:1" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3797:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3797:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3796:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comet", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 598 + ], + "name": "Comet", + "nameLocation": "75:5:1", + "scope": 1269, + "usedErrors": [] + }, + { + "id": 630, + "nodeType": "ContractDefinition", + "src": "3810:340:1", + "nodes": [ + { + "id": 607, + "nodeType": "FunctionDefinition", + "src": "3830:80:1", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3839:9:1", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 600, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3857:5:1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3849:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3849:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 602, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3872:7:1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3864:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3864:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3848:32:1" + }, + "returnParameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3904:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3904:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3903:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 614, + "nodeType": "FunctionDefinition", + "src": "3914:63:1", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3923:9:1", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3941:5:1", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "3933:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3933:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3932:15:1" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 612, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "3971:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3971:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3970:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 619, + "nodeType": "FunctionDefinition", + "src": "3981:49:1", + "functionSelector": "313ce567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3990:8:1", + "parameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "3998:2:1" + }, + "returnParameters": { + "id": 618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 617, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "4024:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 616, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4024:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4023:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 624, + "nodeType": "FunctionDefinition", + "src": "4034:54:1", + "functionSelector": "06fdde03", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "4043:4:1", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [], + "src": "4047:2:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "4073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4072:15:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 629, + "nodeType": "FunctionDefinition", + "src": "4092:56:1", + "functionSelector": "95d89b41", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "4101:6:1", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [], + "src": "4107:2:1" + }, + "returnParameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "4133:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 626, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4133:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4132:15:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 630 + ], + "name": "ERC20", + "nameLocation": "3820:5:1", + "scope": 1269, + "usedErrors": [] + }, + { + "id": 1268, + "nodeType": "ContractDefinition", + "src": "4152:7746:1", + "nodes": [ + { + "id": 639, + "nodeType": "VariableDeclaration", + "src": "4176:60:1", + "constant": true, + "mutability": "constant", + "name": "SECONDS_PER_YEAR", + "nameLocation": "4199:16:1", + "scope": 1268, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 631, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3630", + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4218:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4223:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "4218:7:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3234", + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4228:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "4218:12:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "333635", + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4233:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_365_by_1", + "typeString": "int_const 365" + }, + "value": "365" + }, + "src": "4218:18:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + } + }, + "visibility": "internal" + }, + { + "id": 656, + "nodeType": "StructDefinition", + "src": "4241:184:1", + "canonicalName": "CometQuery.BaseAsset", + "members": [ + { + "constant": false, + "id": 641, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "4272:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4264:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4264:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 643, + "mutability": "mutable", + "name": "balanceOfComet", + "nameLocation": "4292:14:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4287:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 642, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4317:8:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4312:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4312:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "minBorrow", + "nameLocation": "4336:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4331:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4331:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "name", + "nameLocation": "4358:4:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4351:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4351:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4376:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4368:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4368:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 653, + "mutability": "mutable", + "name": "price", + "nameLocation": "4396:5:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4391:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4391:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 655, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4414:6:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4407:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 654, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4407:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "BaseAsset", + "nameLocation": "4248:9:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 679, + "nodeType": "StructDefinition", + "src": "4429:262:1", + "canonicalName": "CometQuery.BaseAssetWithAccountState", + "members": [ + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "4476:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4468:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4468:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4496:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4491:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4491:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 662, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4516:7:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4511:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4511:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 664, + "mutability": "mutable", + "name": "balanceOfComet", + "nameLocation": "4534:14:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4529:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4529:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 666, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4559:8:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4554:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 665, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4554:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "mutability": "mutable", + "name": "minBorrow", + "nameLocation": "4578:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4573:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 667, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "mutability": "mutable", + "name": "name", + "nameLocation": "4600:4:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4593:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 669, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4593:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 672, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4618:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4610:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "price", + "nameLocation": "4638:5:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4633:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4633:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4656:6:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4649:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 675, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4649:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 678, + "mutability": "mutable", + "name": "walletBalance", + "nameLocation": "4673:13:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4668:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4668:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "BaseAssetWithAccountState", + "nameLocation": "4436:25:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 702, + "nodeType": "StructDefinition", + "src": "4695:284:1", + "canonicalName": "CometQuery.CollateralAsset", + "members": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "collateralAsset", + "nameLocation": "4732:15:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4724:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4724:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "4758:16:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4753:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4753:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 685, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4785:8:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4780:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4780:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "mutability": "mutable", + "name": "name", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4799:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 686, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4799:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "4821:25:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4816:30:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4816:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "4857:17:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4852:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4852:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "price", + "nameLocation": "4885:5:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4880:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4880:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4904:9:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4896:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4896:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "4924:9:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4919:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 696, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4919:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4946:6:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4939:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 698, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "4963:11:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4958:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4958:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CollateralAsset", + "nameLocation": "4702:15:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 731, + "nodeType": "StructDefinition", + "src": "4983:362:1", + "canonicalName": "CometQuery.CollateralAssetWithAccountState", + "members": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "collateralAsset", + "nameLocation": "5036:15:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5028:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5028:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "5062:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5057:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5057:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "balance", + "nameLocation": "5082:7:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5077:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5077:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "5100:16:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5095:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 712, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "5127:8:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5122:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5122:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "name", + "nameLocation": "5148:4:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5141:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 713, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5141:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "5163:25:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5158:30:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 715, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5158:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "5199:17:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5194:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5194:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "price", + "nameLocation": "5227:5:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5222:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5222:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 722, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "5246:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5238:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5238:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "5266:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5261:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "5288:6:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5281:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 725, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5281:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "5305:11:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5300:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5300:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 730, + "mutability": "mutable", + "name": "walletBalance", + "nameLocation": "5327:13:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5322:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 729, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5322:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CollateralAssetWithAccountState", + "nameLocation": "4990:31:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 759, + "nodeType": "StructDefinition", + "src": "5349:357:1", + "canonicalName": "CometQuery.CometState", + "members": [ + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "5383:9:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5373:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + }, + "typeName": { + "id": 733, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 732, + "name": "BaseAsset", + "nameLocations": [ + "5373:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 656, + "src": "5373:9:1" + }, + "referencedDeclaration": 656, + "src": "5373:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 736, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "5403:17:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5398:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5398:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 738, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "5431:23:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5426:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 737, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5426:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "5465:23:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5460:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5460:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "borrowAPR", + "nameLocation": "5499:9:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5494:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5494:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "collateralAssets", + "nameLocation": "5532:16:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5514:34:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + }, + "typeName": { + "baseType": { + "id": 744, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 743, + "name": "CollateralAsset", + "nameLocations": [ + "5514:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "5514:15:1" + }, + "referencedDeclaration": 702, + "src": "5514:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 745, + "nodeType": "ArrayTypeName", + "src": "5514:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 748, + "mutability": "mutable", + "name": "earnAPR", + "nameLocation": "5559:7:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5554:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5554:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 750, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "5577:11:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5572:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5572:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "totalBorrowPrincipal", + "nameLocation": "5599:20:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5594:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5594:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 754, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "5630:11:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5625:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5625:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 756, + "mutability": "mutable", + "name": "totalSupplyPrincipal", + "nameLocation": "5652:20:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5647:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5647:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "5683:18:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5678:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5678:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CometState", + "nameLocation": "5356:10:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 789, + "nodeType": "StructDefinition", + "src": "5710:431:1", + "canonicalName": "CometQuery.CometStateWithAccountState", + "members": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "5776:9:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5750:35:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + }, + "typeName": { + "id": 761, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 760, + "name": "BaseAssetWithAccountState", + "nameLocations": [ + "5750:25:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 679, + "src": "5750:25:1" + }, + "referencedDeclaration": 679, + "src": "5750:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 764, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "5796:17:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5791:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 763, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5791:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 766, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "5824:23:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5819:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5819:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 768, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "5858:23:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5853:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 767, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5853:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "borrowAPR", + "nameLocation": "5892:9:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5887:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5887:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 772, + "mutability": "mutable", + "name": "bulkerAllowance", + "nameLocation": "5912:15:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5907:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 771, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5907:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 776, + "mutability": "mutable", + "name": "collateralAssets", + "nameLocation": "5967:16:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5933:50:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + }, + "typeName": { + "baseType": { + "id": 774, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 773, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "5933:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "5933:31:1" + }, + "referencedDeclaration": 731, + "src": "5933:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 775, + "nodeType": "ArrayTypeName", + "src": "5933:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 778, + "mutability": "mutable", + "name": "earnAPR", + "nameLocation": "5994:7:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5989:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 777, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5989:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 780, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "6012:11:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6007:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 779, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6007:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 782, + "mutability": "mutable", + "name": "totalBorrowPrincipal", + "nameLocation": "6034:20:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6029:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 781, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6029:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 784, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "6065:11:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6060:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 783, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6060:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "totalSupplyPrincipal", + "nameLocation": "6087:20:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6082:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6082:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6118:18:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6113:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6113:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CometStateWithAccountState", + "nameLocation": "5717:26:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 979, + "nodeType": "FunctionDefinition", + "src": "6145:2007:1", + "body": { + "id": 978, + "nodeType": "Block", + "src": "6213:1939:1", + "statements": [ + { + "assignments": [ + 799 + ], + "declarations": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "numAssets", + "nameLocation": "6224:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6219:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 798, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6219:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 803, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 800, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6236:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6242:9:1", + "memberName": "numAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 534, + "src": "6236:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6236:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6219:34:1" + }, + { + "assignments": [ + 805 + ], + "declarations": [ + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "baseToken", + "nameLocation": "6267:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6259:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6259:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 809, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 806, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6279:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6285:9:1", + "memberName": "baseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 439, + "src": "6279:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6279:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6259:37:1" + }, + { + "assignments": [ + 811 + ], + "declarations": [ + { + "constant": false, + "id": 811, + "mutability": "mutable", + "name": "baseTokenPriceFeed", + "nameLocation": "6310:18:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6302:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6302:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 815, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 812, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6337:18:1", + "memberName": "baseTokenPriceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 444, + "src": "6331:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6331:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6302:55:1" + }, + { + "assignments": [ + 817 + ], + "declarations": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "borrowMin", + "nameLocation": "6368:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6363:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6363:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 821, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 818, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6380:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6386:13:1", + "memberName": "baseBorrowMin", + "nodeType": "MemberAccess", + "referencedDeclaration": 524, + "src": "6380:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6380:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6363:38:1" + }, + { + "assignments": [ + 823 + ], + "declarations": [ + { + "constant": false, + "id": 823, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6412:18:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6407:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 822, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6407:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 827, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 824, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6433:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6439:18:1", + "memberName": "trackingIndexScale", + "nodeType": "MemberAccess", + "referencedDeclaration": 504, + "src": "6433:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6433:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6407:52:1" + }, + { + "assignments": [ + 829 + ], + "declarations": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "6470:23:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6465:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 828, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6465:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 833, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 830, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6502:23:1", + "memberName": "baseTrackingSupplySpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 509, + "src": "6496:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6496:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6465:62:1" + }, + { + "assignments": [ + 835 + ], + "declarations": [ + { + "constant": false, + "id": 835, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "6538:23:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6533:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 834, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6533:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 839, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 836, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6564:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6570:23:1", + "memberName": "baseTrackingBorrowSpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 514, + "src": "6564:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6564:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6533:62:1" + }, + { + "assignments": [ + 841 + ], + "declarations": [ + { + "constant": false, + "id": 841, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "6606:17:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6601:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6601:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 845, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 842, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6632:17:1", + "memberName": "baseMinForRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 519, + "src": "6626:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6626:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6601:50:1" + }, + { + "assignments": [ + 847 + ], + "declarations": [ + { + "constant": false, + "id": 847, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "6662:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6657:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 846, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6657:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 848, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6676:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6682:14:1", + "memberName": "getUtilization", + "nodeType": "MemberAccess", + "referencedDeclaration": 424, + "src": "6676:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6676:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6657:41:1" + }, + { + "assignments": [ + 853 + ], + "declarations": [ + { + "constant": false, + "id": 853, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "6709:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6704:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6704:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 857, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 854, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6723:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6729:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 386, + "src": "6723:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6723:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6704:38:1" + }, + { + "assignments": [ + 859 + ], + "declarations": [ + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "6753:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6748:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6748:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 863, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 860, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6773:11:1", + "memberName": "totalBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "6767:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6767:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6748:38:1" + }, + { + "assignments": [ + 868 + ], + "declarations": [ + { + "constant": false, + "id": 868, + "mutability": "mutable", + "name": "totalsBasic", + "nameLocation": "6817:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6792:36:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic" + }, + "typeName": { + "id": 867, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 866, + "name": "Comet.TotalsBasic", + "nameLocations": [ + "6792:5:1", + "6798:11:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 323, + "src": "6792:17:1" + }, + "referencedDeclaration": 323, + "src": "6792:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", + "typeString": "struct Comet.TotalsBasic" + } + }, + "visibility": "internal" + } + ], + "id": 872, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 869, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6831:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6837:11:1", + "memberName": "totalsBasic", + "nodeType": "MemberAccess", + "referencedDeclaration": 581, + "src": "6831:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", + "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" + } + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6831:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6792:58:1" + }, + { + "assignments": [ + 874 + ], + "declarations": [ + { + "constant": false, + "id": 874, + "mutability": "mutable", + "name": "borrowRatePerSecond", + "nameLocation": "6861:19:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6856:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 873, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6856:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 879, + "initialValue": { + "arguments": [ + { + "id": 877, + "name": "utilization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "6903:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 875, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6883:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6889:13:1", + "memberName": "getBorrowRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 419, + "src": "6883:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", + "typeString": "function (uint256) view external returns (uint64)" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6883:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6856:59:1" + }, + { + "assignments": [ + 881 + ], + "declarations": [ + { + "constant": false, + "id": 881, + "mutability": "mutable", + "name": "supplyRatePerSecond", + "nameLocation": "6926:19:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6921:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 880, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6921:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 886, + "initialValue": { + "arguments": [ + { + "id": 884, + "name": "utilization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "6968:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 882, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6948:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6954:13:1", + "memberName": "getSupplyRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 412, + "src": "6948:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", + "typeString": "function (uint256) view external returns (uint64)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6948:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6921:59:1" + }, + { + "assignments": [ + 889 + ], + "declarations": [ + { + "constant": false, + "id": 889, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "7004:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6987:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset" + }, + "typeName": { + "id": 888, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 887, + "name": "BaseAsset", + "nameLocations": [ + "6987:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 656, + "src": "6987:9:1" + }, + "referencedDeclaration": 656, + "src": "6987:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + } + }, + "visibility": "internal" + } + ], + "id": 923, + "initialValue": { + "arguments": [ + { + "id": 891, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7045:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 893, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7076:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 892, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7070:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7087:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 629, + "src": "7070:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 898, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7119:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 897, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7113:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7113:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7130:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 619, + "src": "7113:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7113:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 902, + "name": "borrowMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "7159:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 904, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7188:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 903, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7182:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7182:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7199:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "7182:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7182:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 908, + "name": "baseTokenPriceFeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7224:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 911, + "name": "baseTokenPriceFeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7272:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 909, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7257:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7263:8:1", + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "7257:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7257:34:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 919, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7342:7:1", + "typeDescriptions": {} + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7342:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 914, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7321:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 913, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7315:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7315:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7332:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "7315:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7315:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 890, + "name": "BaseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "7016:9:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", + "typeString": "type(struct CometQuery.BaseAsset storage pointer)" + } + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7034:9:1", + "7062:6:1", + "7103:8:1", + "7148:9:1", + "7176:4:1", + "7213:9:1", + "7250:5:1", + "7299:14:1" + ], + "names": [ + "baseAsset", + "symbol", + "decimals", + "minBorrow", + "name", + "priceFeed", + "price", + "balanceOfComet" + ], + "nodeType": "FunctionCall", + "src": "7016:348:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6987:377:1" + }, + { + "assignments": [ + 928 + ], + "declarations": [ + { + "constant": false, + "id": 928, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7396:6:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "7371:31:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + }, + "typeName": { + "baseType": { + "id": 926, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 925, + "name": "CollateralAsset", + "nameLocations": [ + "7371:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "7371:15:1" + }, + "referencedDeclaration": 702, + "src": "7371:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 927, + "nodeType": "ArrayTypeName", + "src": "7371:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + }, + "visibility": "internal" + } + ], + "id": 935, + "initialValue": { + "arguments": [ + { + "id": 933, + "name": "numAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "7427:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7405:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 930, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 929, + "name": "CollateralAsset", + "nameLocations": [ + "7409:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "7409:15:1" + }, + "referencedDeclaration": 702, + "src": "7409:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 931, + "nodeType": "ArrayTypeName", + "src": "7409:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + } + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7405:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7371:66:1" + }, + { + "body": { + "id": 955, + "nodeType": "Block", + "src": "7481:51:1", + "statements": [ + { + "expression": { + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 946, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "7489:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 948, + "indexExpression": { + "id": 947, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7496:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7489:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 950, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7516:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 951, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7523:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 949, + "name": "collateralInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "7501:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", + "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7501:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "src": "7489:36:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 954, + "nodeType": "ExpressionStatement", + "src": "7489:36:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 940, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7461:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 941, + "name": "numAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "7465:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7461:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "initializationExpression": { + "assignments": [ + 937 + ], + "declarations": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "i", + "nameLocation": "7454:1:1", + "nodeType": "VariableDeclaration", + "scope": 956, + "src": "7448:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 936, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 939, + "initialValue": { + "hexValue": "30", + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7458:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7448:11:1" + }, + "loopExpression": { + "expression": { + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7476:3:1", + "subExpression": { + "id": 943, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7476:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "7476:3:1" + }, + "nodeType": "ForStatement", + "src": "7443:89:1" + }, + { + "expression": { + "arguments": [ + { + "id": 958, + "name": "baseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 889, + "src": "7583:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + { + "id": 959, + "name": "baseMinForRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "7621:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 960, + "name": "baseTrackingBorrowSpeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 835, + "src": "7673:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 961, + "name": "baseTrackingSupplySpeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "7731:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 962, + "name": "borrowRatePerSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 874, + "src": "7775:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 963, + "name": "SECONDS_PER_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7797:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7775:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 965, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "7841:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 966, + "name": "supplyRatePerSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 881, + "src": "7866:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 967, + "name": "SECONDS_PER_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7888:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7866:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 969, + "name": "totalBorrow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 859, + "src": "7927:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 970, + "name": "totalsBasic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "7970:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "id": 971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7982:15:1", + "memberName": "totalBorrowBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 318, + "src": "7970:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + { + "id": 972, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 853, + "src": "8020:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 973, + "name": "totalsBasic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "8063:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8075:15:1", + "memberName": "totalSupplyBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 316, + "src": "8063:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + { + "id": 975, + "name": "trackingIndexScale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 823, + "src": "8120:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 957, + "name": "CometState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "7551:10:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", + "typeString": "type(struct CometQuery.CometState storage pointer)" + } + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7572:9:1", + "7602:17:1", + "7648:23:1", + "7706:23:1", + "7764:9:1", + "7823:16:1", + "7857:7:1", + "7914:11:1", + "7948:20:1", + "8007:11:1", + "8041:20:1", + "8100:18:1" + ], + "names": [ + "baseAsset", + "baseMinForRewards", + "baseTrackingBorrowSpeed", + "baseTrackingSupplySpeed", + "borrowAPR", + "collateralAssets", + "earnAPR", + "totalBorrow", + "totalBorrowPrincipal", + "totalSupply", + "totalSupplyPrincipal", + "trackingIndexScale" + ], + "nodeType": "FunctionCall", + "src": "7551:596:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "functionReturnParameters": 797, + "id": 977, + "nodeType": "Return", + "src": "7538:609:1" + } + ] + }, + "functionSelector": "d4fc9fc6", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "6154:5:1", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "comet", + "nameLocation": "6166:5:1", + "nodeType": "VariableDeclaration", + "scope": 979, + "src": "6160:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 791, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 790, + "name": "Comet", + "nameLocations": [ + "6160:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "6160:5:1" + }, + "referencedDeclaration": 598, + "src": "6160:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + } + ], + "src": "6159:13:1" + }, + "returnParameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 979, + "src": "6194:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState" + }, + "typeName": { + "id": 795, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 794, + "name": "CometState", + "nameLocations": [ + "6194:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 759, + "src": "6194:10:1" + }, + "referencedDeclaration": 759, + "src": "6194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", + "typeString": "struct CometQuery.CometState" + } + }, + "visibility": "internal" + } + ], + "src": "6193:19:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1138, + "nodeType": "FunctionDefinition", + "src": "8156:2025:1", + "body": { + "id": 1137, + "nodeType": "Block", + "src": "8316:1865:1", + "statements": [ + { + "assignments": [ + 994 + ], + "declarations": [ + { + "constant": false, + "id": 994, + "mutability": "mutable", + "name": "response", + "nameLocation": "8340:8:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8322:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState" + }, + "typeName": { + "id": 993, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 992, + "name": "CometState", + "nameLocations": [ + "8322:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 759, + "src": "8322:10:1" + }, + "referencedDeclaration": 759, + "src": "8322:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", + "typeString": "struct CometQuery.CometState" + } + }, + "visibility": "internal" + } + ], + "id": 998, + "initialValue": { + "arguments": [ + { + "id": 996, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 995, + "name": "query", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "8351:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", + "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8351:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8322:41:1" + }, + { + "assignments": [ + 1000 + ], + "declarations": [ + { + "constant": false, + "id": 1000, + "mutability": "mutable", + "name": "baseAssetSupplyBalance", + "nameLocation": "8375:22:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8370:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 999, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8370:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "arguments": [ + { + "id": 1003, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8416:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1001, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8400:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8406:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 398, + "src": "8400:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8400:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8370:54:1" + }, + { + "assignments": [ + 1007 + ], + "declarations": [ + { + "constant": false, + "id": 1007, + "mutability": "mutable", + "name": "baseAssetBorrowBalance", + "nameLocation": "8435:22:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8430:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8430:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1012, + "initialValue": { + "arguments": [ + { + "id": 1010, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1008, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8466:15:1", + "memberName": "borrowBalanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "8460:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8460:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8430:60:1" + }, + { + "assignments": [ + 1015 + ], + "declarations": [ + { + "constant": false, + "id": 1015, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "8530:9:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8497:42:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + }, + "typeName": { + "id": 1014, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1013, + "name": "BaseAssetWithAccountState", + "nameLocations": [ + "8497:25:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 679, + "src": "8497:25:1" + }, + "referencedDeclaration": 679, + "src": "8497:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + } + }, + "visibility": "internal" + } + ], + "id": 1065, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1017, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8587:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1018, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8596:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8587:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8606:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "8587:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1026, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8680:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1029, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8697:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1027, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8689:7:1", + "typeDescriptions": {} + } + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8689:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1021, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8640:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8649:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8640:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1023, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8659:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "8640:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1020, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "8634:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8634:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8670:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 607, + "src": "8634:45:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8634:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1032, + "name": "baseAssetSupplyBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1000, + "src": "8721:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1033, + "name": "baseAssetBorrowBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "8746:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8721:47:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1035, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8784:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8793:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8784:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8803:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 655, + "src": "8784:25:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "expression": { + "id": 1038, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8827:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8836:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8827:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8846:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 645, + "src": "8827:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1041, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8873:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8882:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8873:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1043, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8892:9:1", + "memberName": "minBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 647, + "src": "8873:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1044, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8915:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1045, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8924:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8915:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8934:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 649, + "src": "8915:23:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "expression": { + "id": 1047, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8957:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8966:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8957:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8976:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 651, + "src": "8957:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 1050, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9000:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9009:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9000:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9019:5:1", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 653, + "src": "9000:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1053, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9048:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9057:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9048:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9067:14:1", + "memberName": "balanceOfComet", + "nodeType": "MemberAccess", + "referencedDeclaration": 643, + "src": "9048:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1062, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9150:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1057, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9119:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9110:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9129:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "9110:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1056, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "9104:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9104:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9140:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "9104:45:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9104:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1016, + "name": "BaseAssetWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "8542:25:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", + "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "8576:9:1", + "8623:9:1", + "8712:7:1", + "8776:6:1", + "8817:8:1", + "8862:9:1", + "8909:4:1", + "8946:9:1", + "8993:5:1", + "9032:14:1", + "9089:13:1" + ], + "names": [ + "baseAsset", + "allowance", + "balance", + "symbol", + "decimals", + "minBorrow", + "name", + "priceFeed", + "price", + "balanceOfComet", + "walletBalance" + ], + "nodeType": "FunctionCall", + "src": "8542:623:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8497:668:1" + }, + { + "assignments": [ + 1070 + ], + "declarations": [ + { + "constant": false, + "id": 1070, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "9213:6:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "9172:47:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + }, + "typeName": { + "baseType": { + "id": 1068, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1067, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "9172:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "9172:31:1" + }, + "referencedDeclaration": 731, + "src": "9172:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 1069, + "nodeType": "ArrayTypeName", + "src": "9172:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + }, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1075, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9267:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9276:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9267:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9293:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9267:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "9222:37:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 1072, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1071, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "9226:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "9226:31:1" + }, + "referencedDeclaration": 731, + "src": "9226:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 1073, + "nodeType": "ArrayTypeName", + "src": "9226:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9222:83:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9172:133:1" + }, + { + "body": { + "id": 1105, + "nodeType": "Block", + "src": "9372:98:1", + "statements": [ + { + "expression": { + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1092, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1070, + "src": "9380:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + "id": 1094, + "indexExpression": { + "id": 1093, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9387:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9380:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1096, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "9418:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "baseExpression": { + "expression": { + "id": 1097, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9425:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9434:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9425:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1100, + "indexExpression": { + "id": 1099, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9425:28:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + { + "id": 1101, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1095, + "name": "collateralInfoWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "9392:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", + "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9392:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "src": "9380:83:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "9380:83:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1084, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9329:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 1085, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9333:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9342:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9333:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9359:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9333:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9329:36:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1106, + "initializationExpression": { + "assignments": [ + 1081 + ], + "declarations": [ + { + "constant": false, + "id": 1081, + "mutability": "mutable", + "name": "i", + "nameLocation": "9322:1:1", + "nodeType": "VariableDeclaration", + "scope": 1106, + "src": "9316:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1080, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9316:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 1083, + "initialValue": { + "hexValue": "30", + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9326:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9316:11:1" + }, + "loopExpression": { + "expression": { + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9367:3:1", + "subExpression": { + "id": 1089, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9367:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1091, + "nodeType": "ExpressionStatement", + "src": "9367:3:1" + }, + "nodeType": "ForStatement", + "src": "9311:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1108, + "name": "baseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "9537:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + } + }, + { + "expression": { + "id": 1109, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9575:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9584:17:1", + "memberName": "baseMinForRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 736, + "src": "9575:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1111, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9636:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9645:23:1", + "memberName": "baseTrackingBorrowSpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 738, + "src": "9636:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1113, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9703:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9712:23:1", + "memberName": "baseTrackingSupplySpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 740, + "src": "9703:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1115, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9756:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9765:9:1", + "memberName": "borrowAPR", + "nodeType": "MemberAccess", + "referencedDeclaration": 742, + "src": "9756:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1119, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1120, + "name": "bulker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "9826:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1117, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "9801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9807:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "9801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9801:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1122, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1070, + "src": "9861:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + { + "expression": { + "id": 1123, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9886:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9895:7:1", + "memberName": "earnAPR", + "nodeType": "MemberAccess", + "referencedDeclaration": 748, + "src": "9886:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1125, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9925:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1126, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9934:11:1", + "memberName": "totalBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 750, + "src": "9925:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1127, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9977:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9986:20:1", + "memberName": "totalBorrowPrincipal", + "nodeType": "MemberAccess", + "referencedDeclaration": 752, + "src": "9977:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1129, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10029:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10038:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "10029:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1131, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10081:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10090:20:1", + "memberName": "totalSupplyPrincipal", + "nodeType": "MemberAccess", + "referencedDeclaration": 756, + "src": "10081:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1133, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10140:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10149:18:1", + "memberName": "trackingIndexScale", + "nodeType": "MemberAccess", + "referencedDeclaration": 758, + "src": "10140:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1107, + "name": "CometStateWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9489:26:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$789_storage_ptr_$", + "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "9526:9:1", + "9556:17:1", + "9611:23:1", + "9678:23:1", + "9745:9:1", + "9784:15:1", + "9843:16:1", + "9877:7:1", + "9912:11:1", + "9955:20:1", + "10016:11:1", + "10059:20:1", + "10120:18:1" + ], + "names": [ + "baseAsset", + "baseMinForRewards", + "baseTrackingBorrowSpeed", + "baseTrackingSupplySpeed", + "borrowAPR", + "bulkerAllowance", + "collateralAssets", + "earnAPR", + "totalBorrow", + "totalBorrowPrincipal", + "totalSupply", + "totalSupplyPrincipal", + "trackingIndexScale" + ], + "nodeType": "FunctionCall", + "src": "9489:687:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + "functionReturnParameters": 991, + "id": 1136, + "nodeType": "Return", + "src": "9476:700:1" + } + ] + }, + "functionSelector": "5346cc19", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queryWithAccount", + "nameLocation": "8165:16:1", + "parameters": { + "id": 987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 982, + "mutability": "mutable", + "name": "comet", + "nameLocation": "8193:5:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8187:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 981, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 980, + "name": "Comet", + "nameLocations": [ + "8187:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "8187:5:1" + }, + "referencedDeclaration": 598, + "src": "8187:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 984, + "mutability": "mutable", + "name": "account", + "nameLocation": "8220:7:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8204:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8204:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "bulker", + "nameLocation": "8249:6:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8233:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8233:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "8181:78:1" + }, + "returnParameters": { + "id": 991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 990, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8281:33:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 989, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 988, + "name": "CometStateWithAccountState", + "nameLocations": [ + "8281:26:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "8281:26:1" + }, + "referencedDeclaration": 789, + "src": "8281:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "src": "8280:35:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1203, + "nodeType": "FunctionDefinition", + "src": "10185:782:1", + "body": { + "id": 1202, + "nodeType": "Block", + "src": "10280:687:1", + "statements": [ + { + "assignments": [ + 1153 + ], + "declarations": [ + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "assetInfo", + "nameLocation": "10309:9:1", + "nodeType": "VariableDeclaration", + "scope": 1202, + "src": "10286:32:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 1152, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1151, + "name": "Comet.AssetInfo", + "nameLocations": [ + "10286:5:1", + "10292:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "10286:15:1" + }, + "referencedDeclaration": 306, + "src": "10286:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1156, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "10340:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "id": 1154, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10327:12:1", + "memberName": "getAssetInfo", + "nodeType": "MemberAccess", + "referencedDeclaration": 340, + "src": "10321:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", + "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10321:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10286:60:1" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1160, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10409:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10419:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10409:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1162, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10452:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10462:22:1", + "memberName": "borrowCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 299, + "src": "10452:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1165, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10510:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10520:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10510:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1164, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10504:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10504:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10527:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 619, + "src": "10504:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10504:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1170, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10574:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10584:25:1", + "memberName": "liquidateCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 301, + "src": "10574:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "expression": { + "id": 1172, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10638:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10648:17:1", + "memberName": "liquidationFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 303, + "src": "10638:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1175, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10687:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10697:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10687:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1174, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10681:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10681:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10704:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "10681:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10681:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1182, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10742:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10752:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 295, + "src": "10742:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10727:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10733:8:1", + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "10727:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10727:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1185, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10783:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10793:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 295, + "src": "10783:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1187, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10823:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1188, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10833:9:1", + "memberName": "supplyCap", + "nodeType": "MemberAccess", + "referencedDeclaration": 305, + "src": "10823:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1190, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10876:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10866:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1189, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10860:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10883:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 629, + "src": "10860:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10860:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1197, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10937:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10947:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10937:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1195, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10914:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10920:16:1", + "memberName": "totalsCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 588, + "src": "10914:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10914:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1159, + "name": "CollateralAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 702, + "src": "10366:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", + "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10392:15:1", + "10434:16:1", + "10494:8:1", + "10547:25:1", + "10619:17:1", + "10675:4:1", + "10720:5:1", + "10772:9:1", + "10812:9:1", + "10852:6:1", + "10901:11:1" + ], + "names": [ + "collateralAsset", + "collateralFactor", + "decimals", + "liquidateCollateralFactor", + "liquidationFactor", + "name", + "price", + "priceFeed", + "supplyCap", + "symbol", + "totalSupply" + ], + "nodeType": "FunctionCall", + "src": "10366:596:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "functionReturnParameters": 1148, + "id": 1201, + "nodeType": "Return", + "src": "10353:609:1" + } + ] + }, + "functionSelector": "cbe293fa", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "collateralInfo", + "nameLocation": "10194:14:1", + "parameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1141, + "mutability": "mutable", + "name": "comet", + "nameLocation": "10215:5:1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10209:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1139, + "name": "Comet", + "nameLocations": [ + "10209:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "10209:5:1" + }, + "referencedDeclaration": 598, + "src": "10209:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "index", + "nameLocation": "10228:5:1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10222:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1142, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "10222:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "10208:26:1" + }, + "returnParameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10256:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset" + }, + "typeName": { + "id": 1146, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1145, + "name": "CollateralAsset", + "nameLocations": [ + "10256:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "10256:15:1" + }, + "referencedDeclaration": 702, + "src": "10256:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "visibility": "internal" + } + ], + "src": "10255:24:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1267, + "nodeType": "FunctionDefinition", + "src": "10971:925:1", + "body": { + "id": 1266, + "nodeType": "Block", + "src": "11151:745:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1218, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11229:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11235:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11229:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1225, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11310:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1228, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "11327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11319:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11319:7:1", + "typeDescriptions": {} + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11319:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1221, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11283:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11277:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1220, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "11271:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11300:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 607, + "src": "11271:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:63:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 1234, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11388:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11394:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11388:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1231, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "11353:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11359:19:1", + "memberName": "collateralBalanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 543, + "src": "11353:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", + "typeString": "function (address,address) view external returns (uint128)" + } + }, + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11353:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "expression": { + "id": 1237, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11444:16:1", + "memberName": "collateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 683, + "src": "11438:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1239, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1240, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11486:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 685, + "src": "11480:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1241, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11531:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11537:25:1", + "memberName": "liquidateCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 689, + "src": "11531:31:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1243, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11597:17:1", + "memberName": "liquidationFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 691, + "src": "11591:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1245, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11630:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11636:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 687, + "src": "11630:10:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 1247, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11663:5:1", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 693, + "src": "11657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1249, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11689:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11695:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 695, + "src": "11689:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1251, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11725:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11731:9:1", + "memberName": "supplyCap", + "nodeType": "MemberAccess", + "referencedDeclaration": 697, + "src": "11725:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1253, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11758:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11764:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 699, + "src": "11758:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 1255, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11793:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11799:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 701, + "src": "11793:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1262, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11874:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1258, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11841:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11847:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11841:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1257, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "11835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11864:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "11835:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11835:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1217, + "name": "CollateralAssetWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "11170:31:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", + "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "11212:15:1", + "11260:9:1", + "11344:7:1", + "11420:16:1", + "11470:8:1", + "11504:25:1", + "11572:17:1", + "11624:4:1", + "11650:5:1", + "11678:9:1", + "11714:9:1", + "11750:6:1", + "11780:11:1", + "11820:13:1" + ], + "names": [ + "collateralAsset", + "allowance", + "balance", + "collateralFactor", + "decimals", + "liquidateCollateralFactor", + "liquidationFactor", + "name", + "price", + "priceFeed", + "supplyCap", + "symbol", + "totalSupply", + "walletBalance" + ], + "nodeType": "FunctionCall", + "src": "11170:721:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "functionReturnParameters": 1216, + "id": 1265, + "nodeType": "Return", + "src": "11157:734:1" + } + ] + }, + "functionSelector": "c2815c0b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "collateralInfoWithAccount", + "nameLocation": "10980:25:1", + "parameters": { + "id": 1212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1206, + "mutability": "mutable", + "name": "comet", + "nameLocation": "11017:5:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11011:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1205, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1204, + "name": "Comet", + "nameLocations": [ + "11011:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "11011:5:1" + }, + "referencedDeclaration": 598, + "src": "11011:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1209, + "mutability": "mutable", + "name": "asset", + "nameLocation": "11051:5:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11028:28:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset" + }, + "typeName": { + "id": 1208, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1207, + "name": "CollateralAsset", + "nameLocations": [ + "11028:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "11028:15:1" + }, + "referencedDeclaration": 702, + "src": "11028:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1211, + "mutability": "mutable", + "name": "account", + "nameLocation": "11078:7:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11062:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11062:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "11005:84:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11111:38:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + }, + "typeName": { + "id": 1214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1213, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "11111:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "11111:31:1" + }, + "referencedDeclaration": 731, + "src": "11111:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "visibility": "internal" + } + ], + "src": "11110:40:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CometQuery", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1268 + ], + "name": "CometQuery", + "nameLocation": "4161:10:1", + "scope": 1269, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 1 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json b/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json new file mode 100644 index 0000000..8c33a82 --- /dev/null +++ b/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json @@ -0,0 +1,14600 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ], + "name": "collateralInfo", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset", + "name": "asset", + "type": "tuple" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + } + ], + "name": "collateralInfoWithAccount", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + } + ], + "name": "query", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "internalType": "struct CometQuery.BaseAsset", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "bulker", + "type": "address" + } + ], + "name": "queryWithAccount", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x6080806040523461001657611f41908161001c8239f35b600080fdfe610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035c578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a42565b610e95565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610a91565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610a91565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610c90565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a42565b6024359060ff821682036101d05761021d9161020991611989565b604051918291602083526020830190610c90565b0390f35b346101d0576003196060368201126101d05761023b610a42565b602435906001600160401b03928383116101d057610160809184360301126101d057604051908101818110858211176103465760405261027d83600401610c1a565b8152602483013560208201526044830135604082015260648301358481116101d0576102af9060043691860101610c49565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102de60e48401610c1a565b60e08201526101048301356101008201526101248301359384116101d0576101446103329361031661021d9660043691840101610c49565b610120840152013561014082015261032c610a58565b91611cef565b604051918291602083526020830190610ab6565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610375610a42565b6024356001600160a01b03811690036101d057610390610a58565b61039b610160610b6d565b6040516103a781610b89565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015261047082610e95565b6040516370a0823160e01b8152602480356001600160a01b039081166004840152929391926020918491829088165afa91821561093b57600092610a0e575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401526020918391829089165afa90811561093b576000916109dc575b50835151604051636eb1769f60e11b81526001600160a01b03602480358216600484015288821690830152909116919060208180604481010381865afa90811561093b576000916109aa575b5084828103116109945760249486519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519e8f80926370a0823160e01b825260018060a01b0383351660048301525afa9a8b1561093b5760009b61095e575b6040519d506105c28e610b89565b8d5260208d01520360408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015260a0830151519161060a83610dd6565b926106186040519485610bf9565b808452610627601f1991610dd6565b0160005b81811061094757505060005b60a0850151805160ff8316101561068e5790610668610689926106616024359160ff851690610e52565b5189611cef565b61067560ff831687610e52565b5261068360ff821686610e52565b50610e41565b610637565b5050602080850151604080870151606088015160808901519251636eb1769f60e11b8152602480356001600160a01b0390811660048401529889169082015299959897939691959094929392918a916044918391165afa801561093b57600090610907575b610729985060c08701519260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e610b6d565b8d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040516020815281516101a0602083015260018060a01b038151166101c083015260208101516101e083015260408101516102008301526060810151610220830152608081015161024083015260a081015161026083015261014061081f6107e660c0840151610160610280870152610320860190610a91565b60e08401516001600160a01b03166102a08601526101008401516102c08601526101208401518582036101bf19016102e0870152610a91565b910151610300830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b8383106108da578680876101808b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101518285015201516101a08301520390f35b90919293946020806108f8600193601f198682030187528951610ab6565b97019301930191939290610887565b506020883d602011610933575b8161092160209383610bf9565b810103126101d05761072997516106f3565b3d9150610914565b6040513d6000823e3d90fd5b60209061095261190b565b8282880101520161062b565b9a5060208d3d60201161098c575b8161097960209383610bf9565b810103126101d0576105c29c519a6105b4565b3d915061096c565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109d4575b816109c560209383610bf9565b810103126101d0575187610537565b3d91506109b8565b90506020813d602011610a06575b816109f760209383610bf9565b810103126101d05751856104eb565b3d91506109ea565b9091506020813d602011610a3a575b81610a2a60209383610bf9565b810103126101d0575190846104af565b3d9150610a1d565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610a815750506000910152565b8181015183820152602001610a71565b90602091610aaa81518092818552858086019101610a6e565b601f01601f1916010190565b90610b5460018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b0860a08501516101c08060a0870152850190610a91565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610a91565b9161018080820151908301526101a08091015191015290565b6101a081019081106001600160401b0382111761034657604052565b61016081019081106001600160401b0382111761034657604052565b61018081019081106001600160401b0382111761034657604052565b61010081019081106001600160401b0382111761034657604052565b6101c081019081106001600160401b0382111761034657604052565b90601f801991011681019081106001600160401b0382111761034657604052565b35906001600160a01b03821682036101d057565b6001600160401b03811161034657601f01601f191660200190565b81601f820112156101d057803590610c6082610c2e565b92610c6e6040519485610bf9565b828452602083830101116101d057816000926020809301838601378301015290565b90610d1760018060a01b038084511683526020840151602084015260408401516040840152610cce6060850151610160806060870152850190610a91565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610a91565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b51906001600160401b03821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d0578051906001600160401b0382116101d0570181601f820112156101d0578051610da781610c2e565b92610db56040519485610bf9565b818452602082840101116101d057610dd39160208085019101610a6e565b90565b6001600160401b0381116103465760051b60200190565b60405190610dfa82610b89565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109945760010190565b8051821015610e665760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610994570290565b6080526000610160604051610ea981610ba5565b604051610eb581610bc1565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b03608051165afa801561093b57600060c0526118d0575b506040519063c55dae6360e01b825260208260048160018060a01b03608051165afa91821561093b57600092611894575b506040519063e7dad6bd60e01b825260208260048160018060a01b03608051165afa91821561093b57600092611858575b506040519163300e6beb60e01b835260208360048160018060a01b03608051165afa92831561093b57600093611824575b506040516355d3f8af60e11b8152608051602090829060049082906001600160a01b03165afa90811561093b576000916117f2575b506040519363189bb2f160e01b855260208560048160018060a01b03608051165afa94851561093b576000956117be575b5060405190634f54cd2d60e11b825260208260048160018060a01b03608051165afa91821561093b5760009261178a575b50604051936349b270c560e11b855260208560048160018060a01b03608051165afa94851561093b57600095611756575b5060405197637eb7113160e01b895260208960048160018060a01b03608051165afa98891561093b57600099611722575b50604051926318160ddd60e01b845260208460048160018060a01b03608051165afa93841561093b576000946116ee575b506040519163020a17bd60e61b835260208360048160018060a01b03608051165afa92831561093b576000936116ba575b506040519363b9f0baf760e01b85526101008560048160018060a01b03608051165afa94851561093b576000956115ee575b50604051634fd41dad60e11b8152600481018d9052608051602090829060249082906001600160a01b03165afa801561093b57600060a0526115b3575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b03608051165afa9b8c1561093b5760009c611577575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561093b5760009461155a575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561093b57600061014052611526575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561093b57600092611501575b506040516341976e0960e01b81526001600160a01b03848116600483015260805191959160209187916024918391165afa94851561093b576000956114cd575b506040516101208181526370a0823160e01b90915260805181516001600160a01b039182166004909101529051602091602490829085165afa80610100521561093b5760009061010051611495575b61131a6040518060e052610bc1565b60018060a01b031660e05152602060e051015261014051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e08051015261137060ff60c05116610dd6565b9761137e604051998a610bf9565b60ff60c051168952601f1961139760ff60c05116610dd6565b0160005b81811061147d57505060005b60ff60c0511660ff821610156113e757806113c76113e292608051611989565b6113d460ff83168d610e52565b5261068360ff82168c610e52565b6113a7565b509193959790929496986114106001600160401b036114098160a05116610e7c565b9216610e7c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61143a8c610ba5565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b6020809361148b610ded565b920101520161139b565b905060203d6020116114c6575b6114af8161012051610bf9565b6020610120518092810103126101d057519061130b565b503d6114a2565b9094506020813d6020116114f9575b816114e960209383610bf9565b810103126101d0575193386112bc565b3d91506114dc565b61151f9192503d806000833e6115178183610bf9565b810190610d75565b903861127c565b6020813d602011611552575b8161153f60209383610bf9565b810103126101d05751610140523861124c565b3d9150611532565b6115709194503d806000833e6115178183610bf9565b923861121b565b909b506020813d6020116115ab575b8161159360209383610bf9565b810103126101d0576115a490610d47565b9a386111eb565b3d9150611586565b6020813d6020116115e6575b816115cc60209383610bf9565b810103126101d0576115dd90610d47565b60a052386111b5565b3d91506115bf565b909450610100813d610100116116b2575b8161160d6101009383610bf9565b810103126101d0576040519061162282610bc1565b61162b81610d47565b825261163960208201610d47565b602083015261164a60408201610d47565b604083015261165b60608201610d47565b606083015261166c60808201610d5b565b608083015261167d60a08201610d5b565b60a083015260c081015164ffffffffff811681036101d05760c08301526116a69060e001610d25565b60e08201529338611178565b3d91506115ff565b9092506020813d6020116116e6575b816116d660209383610bf9565b810103126101d057519138611146565b3d91506116c9565b9093506020813d60201161171a575b8161170a60209383610bf9565b810103126101d057519238611115565b3d91506116fd565b9098506020813d60201161174e575b8161173e60209383610bf9565b810103126101d0575197386110e4565b3d9150611731565b9094506020813d602011611782575b8161177260209383610bf9565b810103126101d0575193386110b3565b3d9150611765565b9091506020813d6020116117b6575b816117a660209383610bf9565b810103126101d057519038611082565b3d9150611799565b9094506020813d6020116117ea575b816117da60209383610bf9565b810103126101d057519338611051565b3d91506117cd565b90506020813d60201161181c575b8161180d60209383610bf9565b810103126101d0575138611020565b3d9150611800565b9092506020813d602011611850575b8161184060209383610bf9565b810103126101d057519138610feb565b3d9150611833565b9091506020813d60201161188c575b8161187460209383610bf9565b810103126101d05761188590610d33565b9038610fba565b3d9150611867565b9091506020813d6020116118c8575b816118b060209383610bf9565b810103126101d0576118c190610d33565b9038610f89565b3d91506118a3565b6020813d602011611903575b816118e960209383610bf9565b810103126101d0576118fa90610d25565b60c05238610f58565b3d91506118dc565b6040519061191882610bdd565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b90611992610ded565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611b9857600093611c36575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c2b57600092611bfb575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b6e57908c97969594939291600095611be0575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bd557908c9160009a611ba3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611b985760009e611b79575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b6e5760009d611b3c575b5082519d8e611b0a81610b89565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b67575b611b538183610bf9565b81010312611b645750519b38611afc565b80fd5b503d611b49565b83513d6000823e3d90fd5b611b90908493929f3d8091833e6115178183610bf9565b9d9091611acc565b85513d6000823e3d90fd5b9150988282813d8311611bce575b611bbb8183610bf9565b81010312611b6457508b90519838611a8d565b503d611bb1565b84513d6000823e3d90fd5b611bf491953d8091833e6115178183610bf9565b9338611a59565b90918582813d8311611c24575b611c128183610bf9565b81010312611b64575051906004611a16565b503d611c08565b50513d6000823e3d90fd5b90928382813d8311611ce8575b611c4d8183610bf9565b81010312611b645750611cdc60e0865192611c6784610bc1565b611c7081610d25565b8452611c7e60208201610d33565b6020850152611c8e888201610d33565b88850152611c9e60608201610d47565b6060850152611caf60808201610d47565b6080850152611cc060a08201610d47565b60a0850152611cd160c08201610d47565b60c085015201611975565b60e082015291386119d3565b503d611c43565b9190611cf961190b565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561093b57600092611ed6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561093b57600091611e9c575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561093b5760009d611e68575b50604051809e611e1482610bdd565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611e94575b81611e8360209383610bf9565b81010312611b645750519b38611e05565b3d9150611e76565b906020823d602011611ece575b81611eb660209383610bf9565b81010312611b645750611ec890611975565b38611d84565b3d9150611ea9565b90916020823d602011611f03575b81611ef160209383610bf9565b81010312611b64575051906020611d40565b3d9150611ee456fea2646970667358221220104d98973b7c67efe7ab17dda9bcccaaa198c3995ad6fc0cb230c592841abcd464736f6c63430008100033", + "sourceMap": "4152:7746:1:-:0;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035c578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a42565b610e95565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610a91565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610a91565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610c90565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a42565b6024359060ff821682036101d05761021d9161020991611989565b604051918291602083526020830190610c90565b0390f35b346101d0576003196060368201126101d05761023b610a42565b602435906001600160401b03928383116101d057610160809184360301126101d057604051908101818110858211176103465760405261027d83600401610c1a565b8152602483013560208201526044830135604082015260648301358481116101d0576102af9060043691860101610c49565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102de60e48401610c1a565b60e08201526101048301356101008201526101248301359384116101d0576101446103329361031661021d9660043691840101610c49565b610120840152013561014082015261032c610a58565b91611cef565b604051918291602083526020830190610ab6565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610375610a42565b6024356001600160a01b03811690036101d057610390610a58565b61039b610160610b6d565b6040516103a781610b89565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015261047082610e95565b6040516370a0823160e01b8152602480356001600160a01b039081166004840152929391926020918491829088165afa91821561093b57600092610a0e575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401526020918391829089165afa90811561093b576000916109dc575b50835151604051636eb1769f60e11b81526001600160a01b03602480358216600484015288821690830152909116919060208180604481010381865afa90811561093b576000916109aa575b5084828103116109945760249486519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519e8f80926370a0823160e01b825260018060a01b0383351660048301525afa9a8b1561093b5760009b61095e575b6040519d506105c28e610b89565b8d5260208d01520360408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015260a0830151519161060a83610dd6565b926106186040519485610bf9565b808452610627601f1991610dd6565b0160005b81811061094757505060005b60a0850151805160ff8316101561068e5790610668610689926106616024359160ff851690610e52565b5189611cef565b61067560ff831687610e52565b5261068360ff821686610e52565b50610e41565b610637565b5050602080850151604080870151606088015160808901519251636eb1769f60e11b8152602480356001600160a01b0390811660048401529889169082015299959897939691959094929392918a916044918391165afa801561093b57600090610907575b610729985060c08701519260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e610b6d565b8d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040516020815281516101a0602083015260018060a01b038151166101c083015260208101516101e083015260408101516102008301526060810151610220830152608081015161024083015260a081015161026083015261014061081f6107e660c0840151610160610280870152610320860190610a91565b60e08401516001600160a01b03166102a08601526101008401516102c08601526101208401518582036101bf19016102e0870152610a91565b910151610300830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b8383106108da578680876101808b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101518285015201516101a08301520390f35b90919293946020806108f8600193601f198682030187528951610ab6565b97019301930191939290610887565b506020883d602011610933575b8161092160209383610bf9565b810103126101d05761072997516106f3565b3d9150610914565b6040513d6000823e3d90fd5b60209061095261190b565b8282880101520161062b565b9a5060208d3d60201161098c575b8161097960209383610bf9565b810103126101d0576105c29c519a6105b4565b3d915061096c565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109d4575b816109c560209383610bf9565b810103126101d0575187610537565b3d91506109b8565b90506020813d602011610a06575b816109f760209383610bf9565b810103126101d05751856104eb565b3d91506109ea565b9091506020813d602011610a3a575b81610a2a60209383610bf9565b810103126101d0575190846104af565b3d9150610a1d565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610a815750506000910152565b8181015183820152602001610a71565b90602091610aaa81518092818552858086019101610a6e565b601f01601f1916010190565b90610b5460018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b0860a08501516101c08060a0870152850190610a91565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610a91565b9161018080820151908301526101a08091015191015290565b6101a081019081106001600160401b0382111761034657604052565b61016081019081106001600160401b0382111761034657604052565b61018081019081106001600160401b0382111761034657604052565b61010081019081106001600160401b0382111761034657604052565b6101c081019081106001600160401b0382111761034657604052565b90601f801991011681019081106001600160401b0382111761034657604052565b35906001600160a01b03821682036101d057565b6001600160401b03811161034657601f01601f191660200190565b81601f820112156101d057803590610c6082610c2e565b92610c6e6040519485610bf9565b828452602083830101116101d057816000926020809301838601378301015290565b90610d1760018060a01b038084511683526020840151602084015260408401516040840152610cce6060850151610160806060870152850190610a91565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610a91565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b51906001600160401b03821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d0578051906001600160401b0382116101d0570181601f820112156101d0578051610da781610c2e565b92610db56040519485610bf9565b818452602082840101116101d057610dd39160208085019101610a6e565b90565b6001600160401b0381116103465760051b60200190565b60405190610dfa82610b89565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109945760010190565b8051821015610e665760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610994570290565b6080526000610160604051610ea981610ba5565b604051610eb581610bc1565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b03608051165afa801561093b57600060c0526118d0575b506040519063c55dae6360e01b825260208260048160018060a01b03608051165afa91821561093b57600092611894575b506040519063e7dad6bd60e01b825260208260048160018060a01b03608051165afa91821561093b57600092611858575b506040519163300e6beb60e01b835260208360048160018060a01b03608051165afa92831561093b57600093611824575b506040516355d3f8af60e11b8152608051602090829060049082906001600160a01b03165afa90811561093b576000916117f2575b506040519363189bb2f160e01b855260208560048160018060a01b03608051165afa94851561093b576000956117be575b5060405190634f54cd2d60e11b825260208260048160018060a01b03608051165afa91821561093b5760009261178a575b50604051936349b270c560e11b855260208560048160018060a01b03608051165afa94851561093b57600095611756575b5060405197637eb7113160e01b895260208960048160018060a01b03608051165afa98891561093b57600099611722575b50604051926318160ddd60e01b845260208460048160018060a01b03608051165afa93841561093b576000946116ee575b506040519163020a17bd60e61b835260208360048160018060a01b03608051165afa92831561093b576000936116ba575b506040519363b9f0baf760e01b85526101008560048160018060a01b03608051165afa94851561093b576000956115ee575b50604051634fd41dad60e11b8152600481018d9052608051602090829060249082906001600160a01b03165afa801561093b57600060a0526115b3575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b03608051165afa9b8c1561093b5760009c611577575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561093b5760009461155a575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561093b57600061014052611526575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561093b57600092611501575b506040516341976e0960e01b81526001600160a01b03848116600483015260805191959160209187916024918391165afa94851561093b576000956114cd575b506040516101208181526370a0823160e01b90915260805181516001600160a01b039182166004909101529051602091602490829085165afa80610100521561093b5760009061010051611495575b61131a6040518060e052610bc1565b60018060a01b031660e05152602060e051015261014051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e08051015261137060ff60c05116610dd6565b9761137e604051998a610bf9565b60ff60c051168952601f1961139760ff60c05116610dd6565b0160005b81811061147d57505060005b60ff60c0511660ff821610156113e757806113c76113e292608051611989565b6113d460ff83168d610e52565b5261068360ff82168c610e52565b6113a7565b509193959790929496986114106001600160401b036114098160a05116610e7c565b9216610e7c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61143a8c610ba5565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b6020809361148b610ded565b920101520161139b565b905060203d6020116114c6575b6114af8161012051610bf9565b6020610120518092810103126101d057519061130b565b503d6114a2565b9094506020813d6020116114f9575b816114e960209383610bf9565b810103126101d0575193386112bc565b3d91506114dc565b61151f9192503d806000833e6115178183610bf9565b810190610d75565b903861127c565b6020813d602011611552575b8161153f60209383610bf9565b810103126101d05751610140523861124c565b3d9150611532565b6115709194503d806000833e6115178183610bf9565b923861121b565b909b506020813d6020116115ab575b8161159360209383610bf9565b810103126101d0576115a490610d47565b9a386111eb565b3d9150611586565b6020813d6020116115e6575b816115cc60209383610bf9565b810103126101d0576115dd90610d47565b60a052386111b5565b3d91506115bf565b909450610100813d610100116116b2575b8161160d6101009383610bf9565b810103126101d0576040519061162282610bc1565b61162b81610d47565b825261163960208201610d47565b602083015261164a60408201610d47565b604083015261165b60608201610d47565b606083015261166c60808201610d5b565b608083015261167d60a08201610d5b565b60a083015260c081015164ffffffffff811681036101d05760c08301526116a69060e001610d25565b60e08201529338611178565b3d91506115ff565b9092506020813d6020116116e6575b816116d660209383610bf9565b810103126101d057519138611146565b3d91506116c9565b9093506020813d60201161171a575b8161170a60209383610bf9565b810103126101d057519238611115565b3d91506116fd565b9098506020813d60201161174e575b8161173e60209383610bf9565b810103126101d0575197386110e4565b3d9150611731565b9094506020813d602011611782575b8161177260209383610bf9565b810103126101d0575193386110b3565b3d9150611765565b9091506020813d6020116117b6575b816117a660209383610bf9565b810103126101d057519038611082565b3d9150611799565b9094506020813d6020116117ea575b816117da60209383610bf9565b810103126101d057519338611051565b3d91506117cd565b90506020813d60201161181c575b8161180d60209383610bf9565b810103126101d0575138611020565b3d9150611800565b9092506020813d602011611850575b8161184060209383610bf9565b810103126101d057519138610feb565b3d9150611833565b9091506020813d60201161188c575b8161187460209383610bf9565b810103126101d05761188590610d33565b9038610fba565b3d9150611867565b9091506020813d6020116118c8575b816118b060209383610bf9565b810103126101d0576118c190610d33565b9038610f89565b3d91506118a3565b6020813d602011611903575b816118e960209383610bf9565b810103126101d0576118fa90610d25565b60c05238610f58565b3d91506118dc565b6040519061191882610bdd565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b90611992610ded565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611b9857600093611c36575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c2b57600092611bfb575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b6e57908c97969594939291600095611be0575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bd557908c9160009a611ba3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611b985760009e611b79575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b6e5760009d611b3c575b5082519d8e611b0a81610b89565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b67575b611b538183610bf9565b81010312611b645750519b38611afc565b80fd5b503d611b49565b83513d6000823e3d90fd5b611b90908493929f3d8091833e6115178183610bf9565b9d9091611acc565b85513d6000823e3d90fd5b9150988282813d8311611bce575b611bbb8183610bf9565b81010312611b6457508b90519838611a8d565b503d611bb1565b84513d6000823e3d90fd5b611bf491953d8091833e6115178183610bf9565b9338611a59565b90918582813d8311611c24575b611c128183610bf9565b81010312611b64575051906004611a16565b503d611c08565b50513d6000823e3d90fd5b90928382813d8311611ce8575b611c4d8183610bf9565b81010312611b645750611cdc60e0865192611c6784610bc1565b611c7081610d25565b8452611c7e60208201610d33565b6020850152611c8e888201610d33565b88850152611c9e60608201610d47565b6060850152611caf60808201610d47565b6080850152611cc060a08201610d47565b60a0850152611cd160c08201610d47565b60c085015201611975565b60e082015291386119d3565b503d611c43565b9190611cf961190b565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561093b57600092611ed6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561093b57600091611e9c575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561093b5760009d611e68575b50604051809e611e1482610bdd565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611e94575b81611e8360209383610bf9565b81010312611b645750519b38611e05565b3d9150611e76565b906020823d602011611ece575b81611eb660209383610bf9565b81010312611b645750611ec890611975565b38611d84565b3d9150611ea9565b90916020823d602011611f03575b81611ef160209383610bf9565b81010312611b64575051906020611d40565b3d9150611ee456fea2646970667358221220104d98973b7c67efe7ab17dda9bcccaaa198c3995ad6fc0cb230c592841abcd464736f6c63430008100033", + "sourceMap": "4152:7746:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8351:12;;;:::i;:::-;4152:7746;;-1:-1:-1;;;8400:24:1;;4152:7746;;;-1:-1:-1;;;;;4152:7746:1;;;;8400:24;;4152:7746;;;;;;;;;;;;;8400:24;;;;;;;4152:7746;8400:24;;;4152:7746;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;8460:30:1;;4152:7746;;;-1:-1:-1;;;;;4152:7746:1;;;;8460:30;;4152:7746;;;;;;;;;8460:30;;;;;;;4152:7746;8460:30;;;4152:7746;-1:-1:-1;8587:18:1;;4152:7746;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;4152:7746:1;;;;;;8634:70;;4152:7746;;;;;;;;;;;;;;;;;;;8634:70;;;;;;;;;;4152:7746;8634:70;;;4152:7746;;;;;;;;;;8784:18;;;:25;4152:7746;8784:25;;;8827:27;4152:7746;8827:27;;4152:7746;;8873:28;;4152:7746;8915:23;4152:7746;8915:23;;;4152:7746;;;;;;;8957:28;;4152:7746;;9000:24;4152:7746;9000:24;;4152:7746;9048:33;4152:7746;9048:33;;;4152:7746;;;;;;;;;;;;;;;;;;;9104:54;;4152:7746;;;;;;;;;9104:54;;4152:7746;9104:54;;;;;;;4152:7746;9104:54;;;4152:7746;;;;-1:-1:-1;4152:7746:1;;;:::i;:::-;;;;8542:623;;4152:7746;;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;9267:25;;;4152:7746;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11;;4152:7746;9367:3;4152:7746;9267:25;;9333;4152:7746;;;;;9329:36;;;;4152:7746;9392:71;9367:3;4152:7746;9425:28;4152:7746;;;;;;9425:28;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;4152:7746;;;9380:83;;:::i;:::-;;;4152:7746;;;9380:83;;:::i;:::-;;9367:3;:::i;:::-;9316:11;;9329:36;-1:-1:-1;;4152:7746:1;9575:26;;;4152:7746;;9636:32;;;4152:7746;;9703:32;;4152:7746;;9756:18;;4152:7746;;;-1:-1:-1;;;9801:32:1;;4152:7746;;;-1:-1:-1;;;;;4152:7746:1;;;;9801:32;;4152:7746;;;;;;;;;9329:36;;;4152:7746;;;;;;;;9329:36;4152:7746;;;;;;;;9801:32;;;;;;4152:7746;9801:32;;;9311:159;4152:7746;9886:16;;4152:7746;9886:16;;4152:7746;9925:20;4152:7746;9925:20;;4152:7746;9977:29;4152:7746;9977:29;;4152:7746;10029:20;4152:7746;10029:20;;4152:7746;10081:29;4152:7746;;10081:29;;4152:7746;10140:27;;4152:7746;;;;;;;:::i;:::-;;;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;:::i;:::-;;;;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9489:687;;;4152:7746;9489:687;4152:7746;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;9489:687;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9801:32;;4152:7746;9801:32;;4152:7746;9801:32;;;;;;4152:7746;9801:32;;;:::i;:::-;;;4152:7746;;;;;;;9801:32;;;;;-1:-1:-1;9801:32:1;;;4152:7746;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9104:54;;;4152:7746;9104:54;;4152:7746;9104:54;;;;;;4152:7746;9104:54;;;:::i;:::-;;;4152:7746;;;;;;;9104:54;;;;;;-1:-1:-1;9104:54:1;;4152:7746;;;;;;;;;;;;8634:70;;;4152:7746;8634:70;;4152:7746;8634:70;;;;;;4152:7746;8634:70;;;:::i;:::-;;;4152:7746;;;;;8634:70;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;4152:7746;8460:30;;4152:7746;8460:30;;;;;;4152:7746;8460:30;;;:::i;:::-;;;4152:7746;;;;;8460:30;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;;4152:7746;8400:24;;4152:7746;8400:24;;;;;;4152:7746;8400:24;;;:::i;:::-;;;4152:7746;;;;;8400:24;;;;;;;-1:-1:-1;8400:24:1;;4152:7746;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7746:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4152:7746:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;-1:-1:-1;;;;;4152:7746:1;;;;;;-1:-1:-1;;4152:7746:1;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18;;;;;;;;;;;;;;;;;:::o;6145:2007::-;;;-1:-1:-1;4152:7746:1;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6145:2007;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6236:17;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6236:17;;;;;;-1:-1:-1;4152:7746:1;6236:17;;;6145:2007;4152:7746;;;;;;;6279:17;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6279:17;;;;;;;-1:-1:-1;6279:17:1;;;6145:2007;4152:7746;;;;;;;6331:26;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6331:26;;;;;;;-1:-1:-1;6331:26:1;;;6145:2007;4152:7746;;;;;;;6380:21;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6380:21;;;;;;;-1:-1:-1;6380:21:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;6433:26:1;;6145:2007;6236:15;4152:7746;;;;6236:17;;4152:7746;;-1:-1:-1;;;;;4152:7746:1;6433:26;;;;;;;-1:-1:-1;6433:26:1;;;6145:2007;4152:7746;;;;;;;6496:31;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6496:31;;;;;;;-1:-1:-1;6496:31:1;;;6145:2007;4152:7746;;;;;;;6564:31;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6564:31;;;;;;;-1:-1:-1;6564:31:1;;;6145:2007;4152:7746;;;;;;;6626:25;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6626:25;;;;;;;-1:-1:-1;6626:25:1;;;6145:2007;4152:7746;;;;;;;6676:22;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6676:22;;;;;;;-1:-1:-1;6676:22:1;;;6145:2007;4152:7746;;;;;;;6723:19;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6723:19;;;;;;;-1:-1:-1;6723:19:1;;;6145:2007;4152:7746;;;;;;;6767:19;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6767:19;;;;;;;-1:-1:-1;6767:19:1;;;6145:2007;4152:7746;;;;;;;6831:19;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6831:19;;;;;;;-1:-1:-1;6831:19:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;6883:32:1;;6236:17;6883:32;;4152:7746;;;6145:2007;6236:15;4152:7746;;;;;;;;-1:-1:-1;;;;;4152:7746:1;6883:32;;;;;;-1:-1:-1;4152:7746:1;6883:32;;;6145:2007;4152:7746;;;;;;;6948:32;;6236:17;6948:32;;4152:7746;;;;;;;;;;6145:2007;6236:15;4152:7746;6948:32;;;;;;;-1:-1:-1;6948:32:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7070:25:1;;4152:7746;-1:-1:-1;4152:7746:1;6236:17;4152:7746;-1:-1:-1;;;;;4152:7746:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7113:27:1;;4152:7746;;6236:17;4152:7746;-1:-1:-1;;;;;4152:7746:1;;7113:27;;;;;;-1:-1:-1;4152:7746:1;7113:27;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7182:23:1;;4152:7746;-1:-1:-1;4152:7746:1;6236:17;4152:7746;-1:-1:-1;;;;;4152:7746:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7257:34:1;;-1:-1:-1;;;;;4152:7746:1;;;6236:17;7257:34;;4152:7746;6145:2007;6236:15;4152:7746;;;;;;;;;;;;7257:34;;;;;;;-1:-1:-1;7257:34:1;;;6145:2007;-1:-1:-1;4152:7746:1;;;7315:42;;;-1:-1:-1;;;7315:42:1;;;6145:2007;6236:15;7315:42;;-1:-1:-1;;;;;4152:7746:1;;;6236:17;7315:42;;;4152:7746;7315:42;;4152:7746;;;;7315:42;;4152:7746;;7315:42;;;4152:7746;7315:42;;;;-1:-1:-1;7315:42:1;4152:7746;7315:42;;;6145:2007;4152:7746;;;;;;;:::i;:::-;;;;;;;;;;;;7016:348;;4152:7746;;;;;7016:348;;4152:7746;;;7016:348;;4152:7746;6145:2007;4152:7746;7016:348;;4152:7746;;;;;;;;;7016:348;;4152:7746;;;7016:348;;4152:7746;;7016:348;;;4152:7746;;;;6219:34;4152:7746;;:::i;:::-;;;;;;;;:::i;:::-;;;6219:34;4152:7746;;;;;;;;6219:34;4152:7746;;:::i;:::-;;-1:-1:-1;4152:7746:1;;;;;;7448:11;;-1:-1:-1;7476:3:1;4152:7746;;6219:34;4152:7746;;;;7461:13;;;;7501:24;;7476:3;7501:24;6145:2007;7501:24;;:::i;:::-;7489:36;4152:7746;;;7489:36;;:::i;:::-;;;4152:7746;;;7489:36;;:::i;7476:3::-;7448:11;;7461:13;;;;;;;;;;;7866:38;-1:-1:-1;;;;;7775:38:1;6856:59;4152:7746;6856:59;4152:7746;7775:38;:::i;:::-;4152:7746;;7866:38;:::i;:::-;4152:7746;;6145:2007;7970:27;4152:7746;7970:27;;4218:18;4152:7746;8063:27;;4218:18;4152:7746;;;;;;;;:::i;:::-;;;;;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;6145:2007;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;6145:2007;:::o;4152:7746::-;;;;;;;;:::i;:::-;;;;;;;;7315:42;;;4152:7746;7315:42;4152:7746;7315:42;;;;;;4152:7746;7315:42;;:::i;:::-;4152:7746;;;7315:42;;;;4152:7746;;;;;7315:42;;;;;;;;7257:34;;;;4152:7746;7257:34;;4152:7746;7257:34;;;;;;4152:7746;7257:34;;;:::i;:::-;;;4152:7746;;;;;7257:34;;;;;;;-1:-1:-1;7257:34:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7113:27;4152:7746;7113:27;;4152:7746;7113:27;;;;;;4152:7746;7113:27;;;:::i;:::-;;;4152:7746;;;;;;7113:27;;;;;;;-1:-1:-1;7113:27:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;;;;:::i;:::-;;;;;6948:32;;;;4152:7746;6948:32;;4152:7746;6948:32;;;;;;4152:7746;6948:32;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;6948:32;;;;;;;-1:-1:-1;6948:32:1;;6883;4152:7746;6883:32;;4152:7746;6883:32;;;;;;4152:7746;6883:32;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;;6883:32;;;;;;;-1:-1:-1;6883:32:1;;6831:19;;;;4152:7746;6831:19;;4152:7746;6831:19;;;;;;4152:7746;6831:19;;;:::i;:::-;;;4152:7746;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;6145:2007;4152:7746;;;:::i;:::-;6145:2007;4152:7746;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6831:19;;;;;;;-1:-1:-1;6831:19:1;;6767;;;;4152:7746;6767:19;;4152:7746;6767:19;;;;;;4152:7746;6767:19;;;:::i;:::-;;;4152:7746;;;;;6767:19;;;;;;;-1:-1:-1;6767:19:1;;6723;;;;4152:7746;6723:19;;4152:7746;6723:19;;;;;;4152:7746;6723:19;;;:::i;:::-;;;4152:7746;;;;;6723:19;;;;;;;-1:-1:-1;6723:19:1;;6676:22;;;;4152:7746;6676:22;;4152:7746;6676:22;;;;;;4152:7746;6676:22;;;:::i;:::-;;;4152:7746;;;;;6676:22;;;;;;;-1:-1:-1;6676:22:1;;6626:25;;;;4152:7746;6626:25;;4152:7746;6626:25;;;;;;4152:7746;6626:25;;;:::i;:::-;;;4152:7746;;;;;6626:25;;;;;;;-1:-1:-1;6626:25:1;;6564:31;;;;4152:7746;6564:31;;4152:7746;6564:31;;;;;;4152:7746;6564:31;;;:::i;:::-;;;4152:7746;;;;;6564:31;;;;;;;-1:-1:-1;6564:31:1;;6496;;;;4152:7746;6496:31;;4152:7746;6496:31;;;;;;4152:7746;6496:31;;;:::i;:::-;;;4152:7746;;;;;6496:31;;;;;;;-1:-1:-1;6496:31:1;;6433:26;;;4152:7746;6433:26;;4152:7746;6433:26;;;;;;4152:7746;6433:26;;;:::i;:::-;;;4152:7746;;;;;6433:26;;;;;;-1:-1:-1;6433:26:1;;6380:21;;;;4152:7746;6380:21;;4152:7746;6380:21;;;;;;4152:7746;6380:21;;;:::i;:::-;;;4152:7746;;;;;6380:21;;;;;;;-1:-1:-1;6380:21:1;;6331:26;;;;4152:7746;6331:26;;4152:7746;6331:26;;;;;;4152:7746;6331:26;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;6331:26;;;;;;;-1:-1:-1;6331:26:1;;6279:17;;;;4152:7746;6279:17;;4152:7746;6279:17;;;;;;4152:7746;6279:17;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;6279:17;;;;;;;-1:-1:-1;6279:17:1;;6236;4152:7746;6236:17;;4152:7746;6236:17;;;;;;4152:7746;6236:17;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;;6236:17;;;;;;;-1:-1:-1;6236:17:1;;4152:7746;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;10185:782::-;;4152:7746;;:::i;:::-;-1:-1:-1;4152:7746:1;;;-1:-1:-1;;;10321:25:1;;4152:7746;;;;10321:25;;;4152:7746;;-1:-1:-1;;;;;4152:7746:1;;;;;10321:25;;4152:7746;;;;10321:25;;;;;;;-1:-1:-1;10321:25:1;;;10185:782;4152:7746;;10409:15;;;;4152:7746;;;;;;-1:-1:-1;;;;;10452:32:1;10321:25;10452:32;;;;4152:7746;;;;;;;;;;;;;;10504:33;;;;;;;;;-1:-1:-1;10504:33:1;;;10185:782;10574:35;10321:25;10574:35;;4152:7746;10574:35;;4152:7746;;10638:27;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;10681:29;;;;;;;;;;;;;;;;;;-1:-1:-1;10681:29:1;;;10185:782;10742:19;;;;4152:7746;;;;;;;;;;;;;;;10727:35;;10321:25;10727:35;;4152:7746;10727:35;;;;;;;;;;-1:-1:-1;10727:35:1;;;10185:782;4152:7746;;;10823:19;4152:7746;10823:19;4152:7746;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;10860:31;;;;10321:25;10860:31;-1:-1:-1;10860:31:1;;;;;;;-1:-1:-1;10860:31:1;;;10185:782;-1:-1:-1;4152:7746:1;;;-1:-1:-1;;;10914:39:1;;4152:7746;;10321:25;10914:39;;4152:7746;;;;;;;10914:39;;4152:7746;10914:39;;;;;;;-1:-1:-1;10914:39:1;;;10185:782;4152:7746;;;;;;;;:::i;:::-;;10366:596;;4152:7746;10366:596;;4152:7746;10366:596;;;4152:7746;10452:32;10366:596;;4152:7746;;10366:596;;4152:7746;10638:27;10366:596;;4152:7746;;10366:596;;4152:7746;10366:596;;4152:7746;10366:596;;;4152:7746;10366:596;;;4152:7746;10185:782;:::o;10914:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;;;10914:39;;;;4152:7746;;;10914:39;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10860:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10727:35;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;;;;;10727:35;;;;;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10681:29;;;;;;;;;;;;;:::i;:::-;;;;;10504:33;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;-1:-1:-1;4152:7746:1;;10321:25;10504:33;;;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10321:25;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10321:25;;;;;;;;;10971:925;;;4152:7746;;:::i;:::-;-1:-1:-1;4152:7746:1;;;;-1:-1:-1;;;11271:63:1;;-1:-1:-1;;;;;4152:7746:1;;;11271:63;;;4152:7746;;;;;;;;;;;;;;;11271:63;4152:7746;;;;11271:63;;;;;;;-1:-1:-1;11271:63:1;;;10971:925;-1:-1:-1;4152:7746:1;;;;-1:-1:-1;;;11353:57:1;;-1:-1:-1;;;;;4152:7746:1;;;11271:63;11353:57;;4152:7746;;;;;;;;;11271:63;;4152:7746;;;;;;11353:57;;;;;;;-1:-1:-1;11353:57:1;;;10971:925;-1:-1:-1;11271:63:1;11438:22;;4152:7746;;11480:14;;;4152:7746;11531:31;;;4152:7746;;11591:23;;4152:7746;11630:10;;;;11657:11;;;4152:7746;;11689:15;;4152:7746;11725:15;;;4152:7746;11758:12;;;;11793:17;;;4152:7746;;;;;-1:-1:-1;;;11835:47:1;;-1:-1:-1;;;;;4152:7746:1;;;11271:63;11835:47;;4152:7746;;11758:12;;4152:7746;;;;;;;;;;11630:10;;4152:7746;;;;;11835:47;;4152:7746;11835:47;11271:63;11835:47;;;;;;;-1:-1:-1;11835:47:1;;;10971:925;4152:7746;;;;;;;;:::i;:::-;;;11271:63;11170:721;4152:7746;-1:-1:-1;;;;;4152:7746:1;;11170:721;;4152:7746;11630:10;11170:721;;4152:7746;11531:31;11170:721;;4152:7746;;11170:721;;4152:7746;11657:11;11170:721;;4152:7746;;11170:721;;4152:7746;11725:15;11170:721;;4152:7746;11758:12;11170:721;;4152:7746;11793:17;11170:721;;4152:7746;11170:721;;;4152:7746;11170:721;;;4152:7746;11170:721;;;4152:7746;10971:925;:::o;11835:47::-;;;11271:63;11835:47;;11271:63;11835:47;;;;;;11271:63;11835:47;;;:::i;:::-;;;4152:7746;;;;;;11835:47;;;;;;;-1:-1:-1;11835:47:1;;11353:57;;11271:63;11353:57;;11271:63;11353:57;;;;;;11271:63;11353:57;;;:::i;:::-;;;4152:7746;;;;;;;;:::i;:::-;11353:57;;;;;;-1:-1:-1;11353:57:1;;11271:63;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;-1:-1:-1;4152:7746:1;;11271:63;;;;;;-1:-1:-1;11271:63:1;", + "linkReferences": {} + }, + "methodIdentifiers": { + "collateralInfo(address,uint8)": "cbe293fa", + "collateralInfoWithAccount(address,(address,uint256,uint256,string,uint256,uint256,uint256,address,uint256,string,uint256),address)": "c2815c0b", + "query(address)": "d4fc9fc6", + "queryWithAccount(address,address,address)": "5346cc19" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"CometQuery\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralInfo", + "outputs": [ + { + "internalType": "struct CometQuery.CollateralAsset", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "struct CometQuery.CollateralAsset", + "name": "asset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralInfoWithAccount", + "outputs": [ + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "query", + "outputs": [ + { + "internalType": "struct CometQuery.CometState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct CometQuery.BaseAsset", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ] + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAsset[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "bulker", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "queryWithAccount", + "outputs": [ + { + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ] + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CometQuery.sol": "CometQuery" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CometQuery.sol", + "id": 1269, + "exportedSymbols": { + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "ERC20": [ + 630 + ] + }, + "nodeType": "SourceUnit", + "src": "39:11860:1", + "nodes": [ + { + "id": 289, + "nodeType": "PragmaDirective", + "src": "39:24:1", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 598, + "nodeType": "ContractDefinition", + "src": "65:3743:1", + "nodes": [ + { + "id": 306, + "nodeType": "StructDefinition", + "src": "85:226:1", + "canonicalName": "Comet.AssetInfo", + "members": [ + { + "constant": false, + "id": 291, + "mutability": "mutable", + "name": "offset", + "nameLocation": "114:6:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "108:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 290, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "108:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 293, + "mutability": "mutable", + "name": "asset", + "nameLocation": "134:5:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "126:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "126:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 295, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "153:9:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "145:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 297, + "mutability": "mutable", + "name": "scale", + "nameLocation": "175:5:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "168:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 296, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 299, + "mutability": "mutable", + "name": "borrowCollateralFactor", + "nameLocation": "193:22:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "186:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 298, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "186:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "228:25:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "221:32:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 300, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "221:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "266:17:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "259:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 302, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "259:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "297:9:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "289:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 304, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "289:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "AssetInfo", + "nameLocation": "92:9:1", + "scope": 598, + "visibility": "public" + }, + { + "id": 323, + "nodeType": "StructDefinition", + "src": "315:252:1", + "canonicalName": "Comet.TotalsBasic", + "members": [ + { + "constant": false, + "id": 308, + "mutability": "mutable", + "name": "baseSupplyIndex", + "nameLocation": "347:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "340:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 307, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 310, + "mutability": "mutable", + "name": "baseBorrowIndex", + "nameLocation": "375:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "368:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 309, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "368:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "trackingSupplyIndex", + "nameLocation": "403:19:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "396:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 311, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "trackingBorrowIndex", + "nameLocation": "435:19:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "428:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 313, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "428:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 316, + "mutability": "mutable", + "name": "totalSupplyBase", + "nameLocation": "468:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "460:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 315, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "totalBorrowBase", + "nameLocation": "497:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "489:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 317, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "489:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "lastAccrualTime", + "nameLocation": "525:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "518:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 319, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "518:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "mutability": "mutable", + "name": "pauseFlags", + "nameLocation": "552:10:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "546:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 321, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "546:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "TotalsBasic", + "nameLocation": "322:11:1", + "scope": 598, + "visibility": "public" + }, + { + "id": 332, + "nodeType": "FunctionDefinition", + "src": "571:86:1", + "functionSelector": "7ac88ed1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "quoteCollateral", + "nameLocation": "580:15:1", + "parameters": { + "id": 328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "asset", + "nameLocation": "604:5:1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "596:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "596:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "baseAmount", + "nameLocation": "616:10:1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "611:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "595:32:1" + }, + "returnParameters": { + "id": 331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 330, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "651:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 329, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "651:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "650:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 340, + "nodeType": "FunctionDefinition", + "src": "661:72:1", + "functionSelector": "c8c7fe6b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetInfo", + "nameLocation": "670:12:1", + "parameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "i", + "nameLocation": "689:1:1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "683:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 333, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "682:9:1" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "715:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 337, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 336, + "name": "AssetInfo", + "nameLocations": [ + "715:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "715:9:1" + }, + "referencedDeclaration": 306, + "src": "715:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "src": "714:18:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 348, + "nodeType": "FunctionDefinition", + "src": "737:87:1", + "functionSelector": "3b3bec2e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetInfoByAddress", + "nameLocation": "746:21:1", + "parameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 342, + "mutability": "mutable", + "name": "asset", + "nameLocation": "776:5:1", + "nodeType": "VariableDeclaration", + "scope": 348, + "src": "768:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "768:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "767:15:1" + }, + "returnParameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 348, + "src": "806:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 345, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 344, + "name": "AssetInfo", + "nameLocations": [ + "806:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "806:9:1" + }, + "referencedDeclaration": 306, + "src": "806:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "src": "805:18:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 355, + "nodeType": "FunctionDefinition", + "src": "828:75:1", + "functionSelector": "9ff567f8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getCollateralReserves", + "nameLocation": "837:21:1", + "parameters": { + "id": 351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 350, + "mutability": "mutable", + "name": "asset", + "nameLocation": "867:5:1", + "nodeType": "VariableDeclaration", + "scope": 355, + "src": "859:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "859:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "858:15:1" + }, + "returnParameters": { + "id": 354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 353, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 355, + "src": "897:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 352, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "897:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "896:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 360, + "nodeType": "FunctionDefinition", + "src": "907:51:1", + "functionSelector": "0902f1ac", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nameLocation": "916:11:1", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "927:2:1" + }, + "returnParameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "953:3:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 357, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "953:3:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "952:5:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 367, + "nodeType": "FunctionDefinition", + "src": "962:66:1", + "functionSelector": "41976e09", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nameLocation": "971:8:1", + "parameters": { + "id": 363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 362, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "988:9:1", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "980:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "979:19:1" + }, + "returnParameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "1022:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 364, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1022:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1021:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 374, + "nodeType": "FunctionDefinition", + "src": "1032:78:1", + "functionSelector": "38aa813f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isBorrowCollateralized", + "nameLocation": "1041:22:1", + "parameters": { + "id": 370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "account", + "nameLocation": "1072:7:1", + "nodeType": "VariableDeclaration", + "scope": 374, + "src": "1064:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 368, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1063:17:1" + }, + "returnParameters": { + "id": 373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 374, + "src": "1104:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 371, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1104:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1103:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 381, + "nodeType": "FunctionDefinition", + "src": "1114:70:1", + "functionSelector": "042e02cf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isLiquidatable", + "nameLocation": "1123:14:1", + "parameters": { + "id": 377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 376, + "mutability": "mutable", + "name": "account", + "nameLocation": "1146:7:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "1138:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1138:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1137:17:1" + }, + "returnParameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "1178:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1178:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1177:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 386, + "nodeType": "FunctionDefinition", + "src": "1188:55:1", + "functionSelector": "18160ddd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1197:11:1", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [], + "src": "1208:2:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1234:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1233:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 391, + "nodeType": "FunctionDefinition", + "src": "1247:55:1", + "functionSelector": "8285ef40", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalBorrow", + "nameLocation": "1256:11:1", + "parameters": { + "id": 387, + "nodeType": "ParameterList", + "parameters": [], + "src": "1267:2:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1293:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1292:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 398, + "nodeType": "FunctionDefinition", + "src": "1306:66:1", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1315:9:1", + "parameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1333:5:1", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1325:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1325:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1324:15:1" + }, + "returnParameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1363:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1362:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 405, + "nodeType": "FunctionDefinition", + "src": "1376:74:1", + "functionSelector": "374c49b4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceOf", + "nameLocation": "1385:15:1", + "parameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "account", + "nameLocation": "1409:7:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1401:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1401:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1400:17:1" + }, + "returnParameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1441:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1441:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1440:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 412, + "nodeType": "FunctionDefinition", + "src": "1454:72:1", + "functionSelector": "d955759d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSupplyRate", + "nameLocation": "1463:13:1", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "1482:11:1", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1477:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1476:18:1" + }, + "returnParameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1518:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 409, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1518:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1517:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 419, + "nodeType": "FunctionDefinition", + "src": "1530:72:1", + "functionSelector": "9fa83b5a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getBorrowRate", + "nameLocation": "1539:13:1", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "1558:11:1", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1553:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 413, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1553:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1552:18:1" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1594:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 416, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1594:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1593:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 424, + "nodeType": "FunctionDefinition", + "src": "1606:55:1", + "functionSelector": "7eb71131", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUtilization", + "nameLocation": "1615:14:1", + "parameters": { + "id": 420, + "nodeType": "ParameterList", + "parameters": [], + "src": "1629:2:1" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 422, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "1655:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1655:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1654:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 429, + "nodeType": "FunctionDefinition", + "src": "1665:52:1", + "functionSelector": "0c340a24", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "governor", + "nameLocation": "1674:8:1", + "parameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [], + "src": "1682:2:1" + }, + "returnParameters": { + "id": 428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 427, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "1708:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1707:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 434, + "nodeType": "FunctionDefinition", + "src": "1721:57:1", + "functionSelector": "24a3d622", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "pauseGuardian", + "nameLocation": "1730:13:1", + "parameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "1743:2:1" + }, + "returnParameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 432, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 434, + "src": "1769:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1768:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 439, + "nodeType": "FunctionDefinition", + "src": "1782:53:1", + "functionSelector": "c55dae63", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseToken", + "nameLocation": "1791:9:1", + "parameters": { + "id": 435, + "nodeType": "ParameterList", + "parameters": [], + "src": "1800:2:1" + }, + "returnParameters": { + "id": 438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 437, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "1826:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1825:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 444, + "nodeType": "FunctionDefinition", + "src": "1839:62:1", + "functionSelector": "e7dad6bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTokenPriceFeed", + "nameLocation": "1848:18:1", + "parameters": { + "id": 440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1866:2:1" + }, + "returnParameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 444, + "src": "1892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 441, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1892:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1891:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 449, + "nodeType": "FunctionDefinition", + "src": "1905:61:1", + "functionSelector": "44ff241d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "extensionDelegate", + "nameLocation": "1914:17:1", + "parameters": { + "id": 445, + "nodeType": "ParameterList", + "parameters": [], + "src": "1931:2:1" + }, + "returnParameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 449, + "src": "1957:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1957:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1956:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 454, + "nodeType": "FunctionDefinition", + "src": "1970:51:1", + "functionSelector": "a5b4ff79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyKink", + "nameLocation": "1979:10:1", + "parameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [], + "src": "1989:2:1" + }, + "returnParameters": { + "id": 453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 452, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 454, + "src": "2015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2014:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 459, + "nodeType": "FunctionDefinition", + "src": "2025:76:1", + "functionSelector": "5a94b8d1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateSlopeLow", + "nameLocation": "2034:35:1", + "parameters": { + "id": 455, + "nodeType": "ParameterList", + "parameters": [], + "src": "2069:2:1" + }, + "returnParameters": { + "id": 458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "2095:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 456, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2094:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 464, + "nodeType": "FunctionDefinition", + "src": "2105:77:1", + "functionSelector": "804de71f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateSlopeHigh", + "nameLocation": "2114:36:1", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "2150:2:1" + }, + "returnParameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 464, + "src": "2176:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2175:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 469, + "nodeType": "FunctionDefinition", + "src": "2186:72:1", + "functionSelector": "94920cca", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateBase", + "nameLocation": "2195:31:1", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "2226:2:1" + }, + "returnParameters": { + "id": 468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 467, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "2252:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 466, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2252:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2251:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 474, + "nodeType": "FunctionDefinition", + "src": "2262:51:1", + "functionSelector": "9241a561", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowKink", + "nameLocation": "2271:10:1", + "parameters": { + "id": 470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2281:2:1" + }, + "returnParameters": { + "id": 473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 472, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "2307:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 471, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2307:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2306:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 479, + "nodeType": "FunctionDefinition", + "src": "2317:76:1", + "functionSelector": "2d05670b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateSlopeLow", + "nameLocation": "2326:35:1", + "parameters": { + "id": 475, + "nodeType": "ParameterList", + "parameters": [], + "src": "2361:2:1" + }, + "returnParameters": { + "id": 478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 477, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "2387:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 476, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2387:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2386:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 484, + "nodeType": "FunctionDefinition", + "src": "2397:77:1", + "functionSelector": "2a48cf12", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateSlopeHigh", + "nameLocation": "2406:36:1", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2442:2:1" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "2468:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2468:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2467:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 489, + "nodeType": "FunctionDefinition", + "src": "2478:72:1", + "functionSelector": "7914acc7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateBase", + "nameLocation": "2487:31:1", + "parameters": { + "id": 485, + "nodeType": "ParameterList", + "parameters": [], + "src": "2518:2:1" + }, + "returnParameters": { + "id": 488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 487, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 489, + "src": "2544:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 486, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2544:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2543:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 494, + "nodeType": "FunctionDefinition", + "src": "2554:62:1", + "functionSelector": "1f5954bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "storeFrontPriceFactor", + "nameLocation": "2563:21:1", + "parameters": { + "id": 490, + "nodeType": "ParameterList", + "parameters": [], + "src": "2584:2:1" + }, + "returnParameters": { + "id": 493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 492, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 494, + "src": "2610:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2610:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2609:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 499, + "nodeType": "FunctionDefinition", + "src": "2620:50:1", + "functionSelector": "44c1e5eb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseScale", + "nameLocation": "2629:9:1", + "parameters": { + "id": 495, + "nodeType": "ParameterList", + "parameters": [], + "src": "2638:2:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 499, + "src": "2664:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2664:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2663:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 504, + "nodeType": "FunctionDefinition", + "src": "2674:59:1", + "functionSelector": "aba7f15e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "trackingIndexScale", + "nameLocation": "2683:18:1", + "parameters": { + "id": 500, + "nodeType": "ParameterList", + "parameters": [], + "src": "2701:2:1" + }, + "returnParameters": { + "id": 503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "2727:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2727:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2726:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 509, + "nodeType": "FunctionDefinition", + "src": "2737:64:1", + "functionSelector": "189bb2f1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingSupplySpeed", + "nameLocation": "2746:23:1", + "parameters": { + "id": 505, + "nodeType": "ParameterList", + "parameters": [], + "src": "2769:2:1" + }, + "returnParameters": { + "id": 508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 507, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "2795:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2794:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 514, + "nodeType": "FunctionDefinition", + "src": "2805:64:1", + "functionSelector": "9ea99a5a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingBorrowSpeed", + "nameLocation": "2814:23:1", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "2837:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "2863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2862:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 519, + "nodeType": "FunctionDefinition", + "src": "2873:58:1", + "functionSelector": "9364e18a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseMinForRewards", + "nameLocation": "2882:17:1", + "parameters": { + "id": 515, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:2:1" + }, + "returnParameters": { + "id": 518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 517, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "2925:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 516, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2925:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2924:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 524, + "nodeType": "FunctionDefinition", + "src": "2935:54:1", + "functionSelector": "300e6beb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseBorrowMin", + "nameLocation": "2944:13:1", + "parameters": { + "id": 520, + "nodeType": "ParameterList", + "parameters": [], + "src": "2957:2:1" + }, + "returnParameters": { + "id": 523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "2983:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2983:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2982:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 529, + "nodeType": "FunctionDefinition", + "src": "2993:55:1", + "functionSelector": "32176c49", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "targetReserves", + "nameLocation": "3002:14:1", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [], + "src": "3016:2:1" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "3042:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3042:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3041:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 534, + "nodeType": "FunctionDefinition", + "src": "3052:51:1", + "functionSelector": "a46fe83b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "numAssets", + "nameLocation": "3061:9:1", + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [], + "src": "3070:2:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "3096:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 531, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3096:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3095:7:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 543, + "nodeType": "FunctionDefinition", + "src": "3107:93:1", + "functionSelector": "5c2549ee", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collateralBalanceOf", + "nameLocation": "3116:19:1", + "parameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "account", + "nameLocation": "3144:7:1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3136:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3136:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "asset", + "nameLocation": "3161:5:1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3153:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3153:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3135:32:1" + }, + "returnParameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 541, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3191:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 540, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "3191:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "3190:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 550, + "nodeType": "FunctionDefinition", + "src": "3204:77:1", + "functionSelector": "ab9ba7f4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingAccrued", + "nameLocation": "3213:19:1", + "parameters": { + "id": 546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "account", + "nameLocation": "3241:7:1", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "3233:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:17:1" + }, + "returnParameters": { + "id": 549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "3273:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 547, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3273:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3272:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 555, + "nodeType": "FunctionDefinition", + "src": "3285:59:1", + "functionSelector": "a20ed596", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseAccrualScale", + "nameLocation": "3294:16:1", + "parameters": { + "id": 551, + "nodeType": "ParameterList", + "parameters": [], + "src": "3310:2:1" + }, + "returnParameters": { + "id": 554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "3336:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 552, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3336:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3335:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 560, + "nodeType": "FunctionDefinition", + "src": "3348:57:1", + "functionSelector": "96e7a9c1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseIndexScale", + "nameLocation": "3357:14:1", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [], + "src": "3371:2:1" + }, + "returnParameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "3397:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 557, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3397:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3396:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 565, + "nodeType": "FunctionDefinition", + "src": "3409:54:1", + "functionSelector": "0f21d96b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factorScale", + "nameLocation": "3418:11:1", + "parameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [], + "src": "3429:2:1" + }, + "returnParameters": { + "id": 564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 565, + "src": "3455:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 562, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3455:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3454:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 570, + "nodeType": "FunctionDefinition", + "src": "3467:53:1", + "functionSelector": "a0fbddaf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "priceScale", + "nameLocation": "3476:10:1", + "parameters": { + "id": 566, + "nodeType": "ParameterList", + "parameters": [], + "src": "3486:2:1" + }, + "returnParameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 568, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3512:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 567, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3512:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3511:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 575, + "nodeType": "FunctionDefinition", + "src": "3524:51:1", + "functionSelector": "94b2294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "maxAssets", + "nameLocation": "3533:9:1", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [], + "src": "3542:2:1" + }, + "returnParameters": { + "id": 574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 575, + "src": "3568:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 572, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3568:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3567:7:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 581, + "nodeType": "FunctionDefinition", + "src": "3579:66:1", + "functionSelector": "b9f0baf7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalsBasic", + "nameLocation": "3588:11:1", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [], + "src": "3599:2:1" + }, + "returnParameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 579, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "3625:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic" + }, + "typeName": { + "id": 578, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 577, + "name": "TotalsBasic", + "nameLocations": [ + "3625:11:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 323, + "src": "3625:11:1" + }, + "referencedDeclaration": 323, + "src": "3625:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", + "typeString": "struct Comet.TotalsBasic" + } + }, + "visibility": "internal" + } + ], + "src": "3624:20:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 588, + "nodeType": "FunctionDefinition", + "src": "3649:70:1", + "functionSelector": "59e017bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalsCollateral", + "nameLocation": "3658:16:1", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "token", + "nameLocation": "3683:5:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "3675:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3675:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3674:15:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "3713:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3713:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3712:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 597, + "nodeType": "FunctionDefinition", + "src": "3723:83:1", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3732:9:1", + "parameters": { + "id": 593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3750:5:1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3742:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3742:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3765:7:1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3757:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3741:32:1" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3797:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3797:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3796:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comet", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 598 + ], + "name": "Comet", + "nameLocation": "75:5:1", + "scope": 1269, + "usedErrors": [] + }, + { + "id": 630, + "nodeType": "ContractDefinition", + "src": "3810:340:1", + "nodes": [ + { + "id": 607, + "nodeType": "FunctionDefinition", + "src": "3830:80:1", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3839:9:1", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 600, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3857:5:1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3849:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3849:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 602, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3872:7:1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3864:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3864:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3848:32:1" + }, + "returnParameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3904:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3904:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3903:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 614, + "nodeType": "FunctionDefinition", + "src": "3914:63:1", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3923:9:1", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3941:5:1", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "3933:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3933:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3932:15:1" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 612, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "3971:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3971:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3970:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 619, + "nodeType": "FunctionDefinition", + "src": "3981:49:1", + "functionSelector": "313ce567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3990:8:1", + "parameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "3998:2:1" + }, + "returnParameters": { + "id": 618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 617, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "4024:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 616, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4024:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4023:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 624, + "nodeType": "FunctionDefinition", + "src": "4034:54:1", + "functionSelector": "06fdde03", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "4043:4:1", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [], + "src": "4047:2:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "4073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4072:15:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 629, + "nodeType": "FunctionDefinition", + "src": "4092:56:1", + "functionSelector": "95d89b41", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "4101:6:1", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [], + "src": "4107:2:1" + }, + "returnParameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "4133:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 626, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4133:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4132:15:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 630 + ], + "name": "ERC20", + "nameLocation": "3820:5:1", + "scope": 1269, + "usedErrors": [] + }, + { + "id": 1268, + "nodeType": "ContractDefinition", + "src": "4152:7746:1", + "nodes": [ + { + "id": 639, + "nodeType": "VariableDeclaration", + "src": "4176:60:1", + "constant": true, + "mutability": "constant", + "name": "SECONDS_PER_YEAR", + "nameLocation": "4199:16:1", + "scope": 1268, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 631, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3630", + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4218:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4223:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "4218:7:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3234", + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4228:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "4218:12:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "333635", + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4233:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_365_by_1", + "typeString": "int_const 365" + }, + "value": "365" + }, + "src": "4218:18:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + } + }, + "visibility": "internal" + }, + { + "id": 656, + "nodeType": "StructDefinition", + "src": "4241:184:1", + "canonicalName": "CometQuery.BaseAsset", + "members": [ + { + "constant": false, + "id": 641, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "4272:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4264:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4264:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 643, + "mutability": "mutable", + "name": "balanceOfComet", + "nameLocation": "4292:14:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4287:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 642, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4317:8:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4312:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4312:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "minBorrow", + "nameLocation": "4336:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4331:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4331:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "name", + "nameLocation": "4358:4:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4351:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4351:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4376:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4368:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4368:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 653, + "mutability": "mutable", + "name": "price", + "nameLocation": "4396:5:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4391:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4391:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 655, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4414:6:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4407:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 654, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4407:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "BaseAsset", + "nameLocation": "4248:9:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 679, + "nodeType": "StructDefinition", + "src": "4429:262:1", + "canonicalName": "CometQuery.BaseAssetWithAccountState", + "members": [ + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "4476:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4468:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4468:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4496:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4491:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4491:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 662, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4516:7:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4511:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4511:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 664, + "mutability": "mutable", + "name": "balanceOfComet", + "nameLocation": "4534:14:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4529:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4529:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 666, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4559:8:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4554:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 665, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4554:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "mutability": "mutable", + "name": "minBorrow", + "nameLocation": "4578:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4573:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 667, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "mutability": "mutable", + "name": "name", + "nameLocation": "4600:4:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4593:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 669, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4593:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 672, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4618:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4610:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "price", + "nameLocation": "4638:5:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4633:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4633:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4656:6:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4649:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 675, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4649:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 678, + "mutability": "mutable", + "name": "walletBalance", + "nameLocation": "4673:13:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4668:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4668:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "BaseAssetWithAccountState", + "nameLocation": "4436:25:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 702, + "nodeType": "StructDefinition", + "src": "4695:284:1", + "canonicalName": "CometQuery.CollateralAsset", + "members": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "collateralAsset", + "nameLocation": "4732:15:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4724:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4724:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "4758:16:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4753:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4753:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 685, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4785:8:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4780:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4780:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "mutability": "mutable", + "name": "name", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4799:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 686, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4799:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "4821:25:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4816:30:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4816:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "4857:17:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4852:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4852:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "price", + "nameLocation": "4885:5:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4880:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4880:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4904:9:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4896:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4896:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "4924:9:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4919:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 696, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4919:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4946:6:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4939:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 698, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "4963:11:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4958:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4958:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CollateralAsset", + "nameLocation": "4702:15:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 731, + "nodeType": "StructDefinition", + "src": "4983:362:1", + "canonicalName": "CometQuery.CollateralAssetWithAccountState", + "members": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "collateralAsset", + "nameLocation": "5036:15:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5028:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5028:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "5062:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5057:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5057:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "balance", + "nameLocation": "5082:7:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5077:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5077:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "5100:16:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5095:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 712, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "5127:8:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5122:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5122:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "name", + "nameLocation": "5148:4:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5141:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 713, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5141:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "5163:25:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5158:30:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 715, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5158:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "5199:17:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5194:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5194:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "price", + "nameLocation": "5227:5:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5222:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5222:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 722, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "5246:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5238:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5238:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "5266:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5261:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "5288:6:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5281:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 725, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5281:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "5305:11:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5300:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5300:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 730, + "mutability": "mutable", + "name": "walletBalance", + "nameLocation": "5327:13:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5322:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 729, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5322:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CollateralAssetWithAccountState", + "nameLocation": "4990:31:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 759, + "nodeType": "StructDefinition", + "src": "5349:357:1", + "canonicalName": "CometQuery.CometState", + "members": [ + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "5383:9:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5373:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + }, + "typeName": { + "id": 733, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 732, + "name": "BaseAsset", + "nameLocations": [ + "5373:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 656, + "src": "5373:9:1" + }, + "referencedDeclaration": 656, + "src": "5373:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 736, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "5403:17:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5398:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5398:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 738, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "5431:23:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5426:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 737, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5426:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "5465:23:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5460:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5460:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "borrowAPR", + "nameLocation": "5499:9:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5494:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5494:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "collateralAssets", + "nameLocation": "5532:16:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5514:34:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + }, + "typeName": { + "baseType": { + "id": 744, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 743, + "name": "CollateralAsset", + "nameLocations": [ + "5514:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "5514:15:1" + }, + "referencedDeclaration": 702, + "src": "5514:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 745, + "nodeType": "ArrayTypeName", + "src": "5514:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 748, + "mutability": "mutable", + "name": "earnAPR", + "nameLocation": "5559:7:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5554:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5554:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 750, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "5577:11:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5572:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5572:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "totalBorrowPrincipal", + "nameLocation": "5599:20:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5594:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5594:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 754, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "5630:11:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5625:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5625:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 756, + "mutability": "mutable", + "name": "totalSupplyPrincipal", + "nameLocation": "5652:20:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5647:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5647:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "5683:18:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5678:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5678:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CometState", + "nameLocation": "5356:10:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 789, + "nodeType": "StructDefinition", + "src": "5710:431:1", + "canonicalName": "CometQuery.CometStateWithAccountState", + "members": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "5776:9:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5750:35:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + }, + "typeName": { + "id": 761, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 760, + "name": "BaseAssetWithAccountState", + "nameLocations": [ + "5750:25:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 679, + "src": "5750:25:1" + }, + "referencedDeclaration": 679, + "src": "5750:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 764, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "5796:17:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5791:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 763, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5791:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 766, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "5824:23:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5819:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5819:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 768, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "5858:23:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5853:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 767, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5853:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "borrowAPR", + "nameLocation": "5892:9:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5887:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5887:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 772, + "mutability": "mutable", + "name": "bulkerAllowance", + "nameLocation": "5912:15:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5907:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 771, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5907:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 776, + "mutability": "mutable", + "name": "collateralAssets", + "nameLocation": "5967:16:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5933:50:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + }, + "typeName": { + "baseType": { + "id": 774, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 773, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "5933:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "5933:31:1" + }, + "referencedDeclaration": 731, + "src": "5933:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 775, + "nodeType": "ArrayTypeName", + "src": "5933:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 778, + "mutability": "mutable", + "name": "earnAPR", + "nameLocation": "5994:7:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5989:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 777, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5989:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 780, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "6012:11:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6007:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 779, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6007:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 782, + "mutability": "mutable", + "name": "totalBorrowPrincipal", + "nameLocation": "6034:20:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6029:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 781, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6029:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 784, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "6065:11:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6060:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 783, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6060:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "totalSupplyPrincipal", + "nameLocation": "6087:20:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6082:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6082:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6118:18:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6113:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6113:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CometStateWithAccountState", + "nameLocation": "5717:26:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 979, + "nodeType": "FunctionDefinition", + "src": "6145:2007:1", + "body": { + "id": 978, + "nodeType": "Block", + "src": "6213:1939:1", + "statements": [ + { + "assignments": [ + 799 + ], + "declarations": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "numAssets", + "nameLocation": "6224:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6219:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 798, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6219:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 803, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 800, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6236:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6242:9:1", + "memberName": "numAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 534, + "src": "6236:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6236:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6219:34:1" + }, + { + "assignments": [ + 805 + ], + "declarations": [ + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "baseToken", + "nameLocation": "6267:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6259:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6259:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 809, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 806, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6279:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6285:9:1", + "memberName": "baseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 439, + "src": "6279:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6279:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6259:37:1" + }, + { + "assignments": [ + 811 + ], + "declarations": [ + { + "constant": false, + "id": 811, + "mutability": "mutable", + "name": "baseTokenPriceFeed", + "nameLocation": "6310:18:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6302:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6302:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 815, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 812, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6337:18:1", + "memberName": "baseTokenPriceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 444, + "src": "6331:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6331:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6302:55:1" + }, + { + "assignments": [ + 817 + ], + "declarations": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "borrowMin", + "nameLocation": "6368:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6363:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6363:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 821, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 818, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6380:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6386:13:1", + "memberName": "baseBorrowMin", + "nodeType": "MemberAccess", + "referencedDeclaration": 524, + "src": "6380:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6380:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6363:38:1" + }, + { + "assignments": [ + 823 + ], + "declarations": [ + { + "constant": false, + "id": 823, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6412:18:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6407:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 822, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6407:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 827, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 824, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6433:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6439:18:1", + "memberName": "trackingIndexScale", + "nodeType": "MemberAccess", + "referencedDeclaration": 504, + "src": "6433:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6433:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6407:52:1" + }, + { + "assignments": [ + 829 + ], + "declarations": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "6470:23:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6465:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 828, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6465:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 833, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 830, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6502:23:1", + "memberName": "baseTrackingSupplySpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 509, + "src": "6496:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6496:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6465:62:1" + }, + { + "assignments": [ + 835 + ], + "declarations": [ + { + "constant": false, + "id": 835, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "6538:23:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6533:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 834, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6533:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 839, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 836, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6564:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6570:23:1", + "memberName": "baseTrackingBorrowSpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 514, + "src": "6564:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6564:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6533:62:1" + }, + { + "assignments": [ + 841 + ], + "declarations": [ + { + "constant": false, + "id": 841, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "6606:17:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6601:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6601:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 845, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 842, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6632:17:1", + "memberName": "baseMinForRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 519, + "src": "6626:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6626:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6601:50:1" + }, + { + "assignments": [ + 847 + ], + "declarations": [ + { + "constant": false, + "id": 847, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "6662:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6657:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 846, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6657:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 848, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6676:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6682:14:1", + "memberName": "getUtilization", + "nodeType": "MemberAccess", + "referencedDeclaration": 424, + "src": "6676:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6676:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6657:41:1" + }, + { + "assignments": [ + 853 + ], + "declarations": [ + { + "constant": false, + "id": 853, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "6709:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6704:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6704:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 857, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 854, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6723:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6729:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 386, + "src": "6723:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6723:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6704:38:1" + }, + { + "assignments": [ + 859 + ], + "declarations": [ + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "6753:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6748:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6748:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 863, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 860, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6773:11:1", + "memberName": "totalBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "6767:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6767:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6748:38:1" + }, + { + "assignments": [ + 868 + ], + "declarations": [ + { + "constant": false, + "id": 868, + "mutability": "mutable", + "name": "totalsBasic", + "nameLocation": "6817:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6792:36:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic" + }, + "typeName": { + "id": 867, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 866, + "name": "Comet.TotalsBasic", + "nameLocations": [ + "6792:5:1", + "6798:11:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 323, + "src": "6792:17:1" + }, + "referencedDeclaration": 323, + "src": "6792:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", + "typeString": "struct Comet.TotalsBasic" + } + }, + "visibility": "internal" + } + ], + "id": 872, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 869, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6831:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6837:11:1", + "memberName": "totalsBasic", + "nodeType": "MemberAccess", + "referencedDeclaration": 581, + "src": "6831:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", + "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" + } + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6831:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6792:58:1" + }, + { + "assignments": [ + 874 + ], + "declarations": [ + { + "constant": false, + "id": 874, + "mutability": "mutable", + "name": "borrowRatePerSecond", + "nameLocation": "6861:19:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6856:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 873, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6856:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 879, + "initialValue": { + "arguments": [ + { + "id": 877, + "name": "utilization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "6903:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 875, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6883:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6889:13:1", + "memberName": "getBorrowRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 419, + "src": "6883:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", + "typeString": "function (uint256) view external returns (uint64)" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6883:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6856:59:1" + }, + { + "assignments": [ + 881 + ], + "declarations": [ + { + "constant": false, + "id": 881, + "mutability": "mutable", + "name": "supplyRatePerSecond", + "nameLocation": "6926:19:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6921:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 880, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6921:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 886, + "initialValue": { + "arguments": [ + { + "id": 884, + "name": "utilization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "6968:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 882, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6948:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6954:13:1", + "memberName": "getSupplyRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 412, + "src": "6948:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", + "typeString": "function (uint256) view external returns (uint64)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6948:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6921:59:1" + }, + { + "assignments": [ + 889 + ], + "declarations": [ + { + "constant": false, + "id": 889, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "7004:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6987:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset" + }, + "typeName": { + "id": 888, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 887, + "name": "BaseAsset", + "nameLocations": [ + "6987:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 656, + "src": "6987:9:1" + }, + "referencedDeclaration": 656, + "src": "6987:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + } + }, + "visibility": "internal" + } + ], + "id": 923, + "initialValue": { + "arguments": [ + { + "id": 891, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7045:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 893, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7076:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 892, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7070:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7087:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 629, + "src": "7070:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 898, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7119:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 897, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7113:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7113:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7130:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 619, + "src": "7113:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7113:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 902, + "name": "borrowMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "7159:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 904, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7188:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 903, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7182:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7182:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7199:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "7182:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7182:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 908, + "name": "baseTokenPriceFeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7224:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 911, + "name": "baseTokenPriceFeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7272:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 909, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7257:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7263:8:1", + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "7257:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7257:34:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 919, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7342:7:1", + "typeDescriptions": {} + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7342:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 914, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7321:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 913, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7315:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7315:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7332:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "7315:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7315:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 890, + "name": "BaseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "7016:9:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", + "typeString": "type(struct CometQuery.BaseAsset storage pointer)" + } + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7034:9:1", + "7062:6:1", + "7103:8:1", + "7148:9:1", + "7176:4:1", + "7213:9:1", + "7250:5:1", + "7299:14:1" + ], + "names": [ + "baseAsset", + "symbol", + "decimals", + "minBorrow", + "name", + "priceFeed", + "price", + "balanceOfComet" + ], + "nodeType": "FunctionCall", + "src": "7016:348:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6987:377:1" + }, + { + "assignments": [ + 928 + ], + "declarations": [ + { + "constant": false, + "id": 928, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7396:6:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "7371:31:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + }, + "typeName": { + "baseType": { + "id": 926, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 925, + "name": "CollateralAsset", + "nameLocations": [ + "7371:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "7371:15:1" + }, + "referencedDeclaration": 702, + "src": "7371:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 927, + "nodeType": "ArrayTypeName", + "src": "7371:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + }, + "visibility": "internal" + } + ], + "id": 935, + "initialValue": { + "arguments": [ + { + "id": 933, + "name": "numAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "7427:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7405:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 930, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 929, + "name": "CollateralAsset", + "nameLocations": [ + "7409:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "7409:15:1" + }, + "referencedDeclaration": 702, + "src": "7409:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 931, + "nodeType": "ArrayTypeName", + "src": "7409:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + } + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7405:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7371:66:1" + }, + { + "body": { + "id": 955, + "nodeType": "Block", + "src": "7481:51:1", + "statements": [ + { + "expression": { + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 946, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "7489:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 948, + "indexExpression": { + "id": 947, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7496:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7489:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 950, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7516:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 951, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7523:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 949, + "name": "collateralInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "7501:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", + "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7501:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "src": "7489:36:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 954, + "nodeType": "ExpressionStatement", + "src": "7489:36:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 940, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7461:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 941, + "name": "numAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "7465:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7461:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "initializationExpression": { + "assignments": [ + 937 + ], + "declarations": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "i", + "nameLocation": "7454:1:1", + "nodeType": "VariableDeclaration", + "scope": 956, + "src": "7448:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 936, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 939, + "initialValue": { + "hexValue": "30", + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7458:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7448:11:1" + }, + "loopExpression": { + "expression": { + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7476:3:1", + "subExpression": { + "id": 943, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7476:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "7476:3:1" + }, + "nodeType": "ForStatement", + "src": "7443:89:1" + }, + { + "expression": { + "arguments": [ + { + "id": 958, + "name": "baseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 889, + "src": "7583:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + { + "id": 959, + "name": "baseMinForRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "7621:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 960, + "name": "baseTrackingBorrowSpeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 835, + "src": "7673:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 961, + "name": "baseTrackingSupplySpeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "7731:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 962, + "name": "borrowRatePerSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 874, + "src": "7775:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 963, + "name": "SECONDS_PER_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7797:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7775:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 965, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "7841:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 966, + "name": "supplyRatePerSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 881, + "src": "7866:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 967, + "name": "SECONDS_PER_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7888:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7866:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 969, + "name": "totalBorrow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 859, + "src": "7927:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 970, + "name": "totalsBasic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "7970:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "id": 971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7982:15:1", + "memberName": "totalBorrowBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 318, + "src": "7970:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + { + "id": 972, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 853, + "src": "8020:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 973, + "name": "totalsBasic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "8063:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8075:15:1", + "memberName": "totalSupplyBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 316, + "src": "8063:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + { + "id": 975, + "name": "trackingIndexScale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 823, + "src": "8120:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 957, + "name": "CometState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "7551:10:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", + "typeString": "type(struct CometQuery.CometState storage pointer)" + } + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7572:9:1", + "7602:17:1", + "7648:23:1", + "7706:23:1", + "7764:9:1", + "7823:16:1", + "7857:7:1", + "7914:11:1", + "7948:20:1", + "8007:11:1", + "8041:20:1", + "8100:18:1" + ], + "names": [ + "baseAsset", + "baseMinForRewards", + "baseTrackingBorrowSpeed", + "baseTrackingSupplySpeed", + "borrowAPR", + "collateralAssets", + "earnAPR", + "totalBorrow", + "totalBorrowPrincipal", + "totalSupply", + "totalSupplyPrincipal", + "trackingIndexScale" + ], + "nodeType": "FunctionCall", + "src": "7551:596:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "functionReturnParameters": 797, + "id": 977, + "nodeType": "Return", + "src": "7538:609:1" + } + ] + }, + "functionSelector": "d4fc9fc6", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "6154:5:1", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "comet", + "nameLocation": "6166:5:1", + "nodeType": "VariableDeclaration", + "scope": 979, + "src": "6160:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 791, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 790, + "name": "Comet", + "nameLocations": [ + "6160:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "6160:5:1" + }, + "referencedDeclaration": 598, + "src": "6160:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + } + ], + "src": "6159:13:1" + }, + "returnParameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 979, + "src": "6194:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState" + }, + "typeName": { + "id": 795, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 794, + "name": "CometState", + "nameLocations": [ + "6194:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 759, + "src": "6194:10:1" + }, + "referencedDeclaration": 759, + "src": "6194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", + "typeString": "struct CometQuery.CometState" + } + }, + "visibility": "internal" + } + ], + "src": "6193:19:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1138, + "nodeType": "FunctionDefinition", + "src": "8156:2025:1", + "body": { + "id": 1137, + "nodeType": "Block", + "src": "8316:1865:1", + "statements": [ + { + "assignments": [ + 994 + ], + "declarations": [ + { + "constant": false, + "id": 994, + "mutability": "mutable", + "name": "response", + "nameLocation": "8340:8:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8322:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState" + }, + "typeName": { + "id": 993, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 992, + "name": "CometState", + "nameLocations": [ + "8322:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 759, + "src": "8322:10:1" + }, + "referencedDeclaration": 759, + "src": "8322:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", + "typeString": "struct CometQuery.CometState" + } + }, + "visibility": "internal" + } + ], + "id": 998, + "initialValue": { + "arguments": [ + { + "id": 996, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 995, + "name": "query", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "8351:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", + "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8351:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8322:41:1" + }, + { + "assignments": [ + 1000 + ], + "declarations": [ + { + "constant": false, + "id": 1000, + "mutability": "mutable", + "name": "baseAssetSupplyBalance", + "nameLocation": "8375:22:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8370:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 999, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8370:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "arguments": [ + { + "id": 1003, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8416:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1001, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8400:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8406:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 398, + "src": "8400:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8400:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8370:54:1" + }, + { + "assignments": [ + 1007 + ], + "declarations": [ + { + "constant": false, + "id": 1007, + "mutability": "mutable", + "name": "baseAssetBorrowBalance", + "nameLocation": "8435:22:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8430:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8430:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1012, + "initialValue": { + "arguments": [ + { + "id": 1010, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1008, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8466:15:1", + "memberName": "borrowBalanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "8460:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8460:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8430:60:1" + }, + { + "assignments": [ + 1015 + ], + "declarations": [ + { + "constant": false, + "id": 1015, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "8530:9:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8497:42:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + }, + "typeName": { + "id": 1014, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1013, + "name": "BaseAssetWithAccountState", + "nameLocations": [ + "8497:25:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 679, + "src": "8497:25:1" + }, + "referencedDeclaration": 679, + "src": "8497:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + } + }, + "visibility": "internal" + } + ], + "id": 1065, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1017, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8587:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1018, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8596:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8587:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8606:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "8587:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1026, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8680:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1029, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8697:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1027, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8689:7:1", + "typeDescriptions": {} + } + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8689:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1021, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8640:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8649:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8640:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1023, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8659:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "8640:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1020, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "8634:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8634:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8670:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 607, + "src": "8634:45:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8634:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1032, + "name": "baseAssetSupplyBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1000, + "src": "8721:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1033, + "name": "baseAssetBorrowBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "8746:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8721:47:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1035, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8784:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8793:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8784:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8803:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 655, + "src": "8784:25:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "expression": { + "id": 1038, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8827:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8836:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8827:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8846:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 645, + "src": "8827:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1041, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8873:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8882:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8873:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1043, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8892:9:1", + "memberName": "minBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 647, + "src": "8873:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1044, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8915:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1045, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8924:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8915:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8934:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 649, + "src": "8915:23:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "expression": { + "id": 1047, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8957:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8966:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8957:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8976:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 651, + "src": "8957:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 1050, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9000:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9009:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9000:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9019:5:1", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 653, + "src": "9000:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1053, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9048:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9057:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9048:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9067:14:1", + "memberName": "balanceOfComet", + "nodeType": "MemberAccess", + "referencedDeclaration": 643, + "src": "9048:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1062, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9150:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1057, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9119:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9110:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9129:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "9110:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1056, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "9104:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9104:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9140:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "9104:45:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9104:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1016, + "name": "BaseAssetWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "8542:25:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", + "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "8576:9:1", + "8623:9:1", + "8712:7:1", + "8776:6:1", + "8817:8:1", + "8862:9:1", + "8909:4:1", + "8946:9:1", + "8993:5:1", + "9032:14:1", + "9089:13:1" + ], + "names": [ + "baseAsset", + "allowance", + "balance", + "symbol", + "decimals", + "minBorrow", + "name", + "priceFeed", + "price", + "balanceOfComet", + "walletBalance" + ], + "nodeType": "FunctionCall", + "src": "8542:623:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8497:668:1" + }, + { + "assignments": [ + 1070 + ], + "declarations": [ + { + "constant": false, + "id": 1070, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "9213:6:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "9172:47:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + }, + "typeName": { + "baseType": { + "id": 1068, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1067, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "9172:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "9172:31:1" + }, + "referencedDeclaration": 731, + "src": "9172:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 1069, + "nodeType": "ArrayTypeName", + "src": "9172:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + }, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1075, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9267:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9276:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9267:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9293:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9267:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "9222:37:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 1072, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1071, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "9226:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "9226:31:1" + }, + "referencedDeclaration": 731, + "src": "9226:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 1073, + "nodeType": "ArrayTypeName", + "src": "9226:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9222:83:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9172:133:1" + }, + { + "body": { + "id": 1105, + "nodeType": "Block", + "src": "9372:98:1", + "statements": [ + { + "expression": { + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1092, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1070, + "src": "9380:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + "id": 1094, + "indexExpression": { + "id": 1093, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9387:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9380:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1096, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "9418:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "baseExpression": { + "expression": { + "id": 1097, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9425:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9434:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9425:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1100, + "indexExpression": { + "id": 1099, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9425:28:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + { + "id": 1101, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1095, + "name": "collateralInfoWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "9392:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", + "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9392:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "src": "9380:83:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "9380:83:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1084, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9329:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 1085, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9333:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9342:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9333:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9359:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9333:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9329:36:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1106, + "initializationExpression": { + "assignments": [ + 1081 + ], + "declarations": [ + { + "constant": false, + "id": 1081, + "mutability": "mutable", + "name": "i", + "nameLocation": "9322:1:1", + "nodeType": "VariableDeclaration", + "scope": 1106, + "src": "9316:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1080, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9316:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 1083, + "initialValue": { + "hexValue": "30", + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9326:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9316:11:1" + }, + "loopExpression": { + "expression": { + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9367:3:1", + "subExpression": { + "id": 1089, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9367:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1091, + "nodeType": "ExpressionStatement", + "src": "9367:3:1" + }, + "nodeType": "ForStatement", + "src": "9311:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1108, + "name": "baseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "9537:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + } + }, + { + "expression": { + "id": 1109, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9575:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9584:17:1", + "memberName": "baseMinForRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 736, + "src": "9575:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1111, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9636:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9645:23:1", + "memberName": "baseTrackingBorrowSpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 738, + "src": "9636:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1113, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9703:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9712:23:1", + "memberName": "baseTrackingSupplySpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 740, + "src": "9703:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1115, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9756:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9765:9:1", + "memberName": "borrowAPR", + "nodeType": "MemberAccess", + "referencedDeclaration": 742, + "src": "9756:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1119, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1120, + "name": "bulker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "9826:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1117, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "9801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9807:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "9801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9801:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1122, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1070, + "src": "9861:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + { + "expression": { + "id": 1123, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9886:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9895:7:1", + "memberName": "earnAPR", + "nodeType": "MemberAccess", + "referencedDeclaration": 748, + "src": "9886:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1125, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9925:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1126, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9934:11:1", + "memberName": "totalBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 750, + "src": "9925:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1127, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9977:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9986:20:1", + "memberName": "totalBorrowPrincipal", + "nodeType": "MemberAccess", + "referencedDeclaration": 752, + "src": "9977:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1129, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10029:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10038:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "10029:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1131, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10081:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10090:20:1", + "memberName": "totalSupplyPrincipal", + "nodeType": "MemberAccess", + "referencedDeclaration": 756, + "src": "10081:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1133, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10140:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10149:18:1", + "memberName": "trackingIndexScale", + "nodeType": "MemberAccess", + "referencedDeclaration": 758, + "src": "10140:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1107, + "name": "CometStateWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9489:26:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$789_storage_ptr_$", + "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "9526:9:1", + "9556:17:1", + "9611:23:1", + "9678:23:1", + "9745:9:1", + "9784:15:1", + "9843:16:1", + "9877:7:1", + "9912:11:1", + "9955:20:1", + "10016:11:1", + "10059:20:1", + "10120:18:1" + ], + "names": [ + "baseAsset", + "baseMinForRewards", + "baseTrackingBorrowSpeed", + "baseTrackingSupplySpeed", + "borrowAPR", + "bulkerAllowance", + "collateralAssets", + "earnAPR", + "totalBorrow", + "totalBorrowPrincipal", + "totalSupply", + "totalSupplyPrincipal", + "trackingIndexScale" + ], + "nodeType": "FunctionCall", + "src": "9489:687:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + "functionReturnParameters": 991, + "id": 1136, + "nodeType": "Return", + "src": "9476:700:1" + } + ] + }, + "functionSelector": "5346cc19", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queryWithAccount", + "nameLocation": "8165:16:1", + "parameters": { + "id": 987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 982, + "mutability": "mutable", + "name": "comet", + "nameLocation": "8193:5:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8187:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 981, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 980, + "name": "Comet", + "nameLocations": [ + "8187:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "8187:5:1" + }, + "referencedDeclaration": 598, + "src": "8187:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 984, + "mutability": "mutable", + "name": "account", + "nameLocation": "8220:7:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8204:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8204:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "bulker", + "nameLocation": "8249:6:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8233:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8233:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "8181:78:1" + }, + "returnParameters": { + "id": 991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 990, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8281:33:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 989, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 988, + "name": "CometStateWithAccountState", + "nameLocations": [ + "8281:26:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "8281:26:1" + }, + "referencedDeclaration": 789, + "src": "8281:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "src": "8280:35:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1203, + "nodeType": "FunctionDefinition", + "src": "10185:782:1", + "body": { + "id": 1202, + "nodeType": "Block", + "src": "10280:687:1", + "statements": [ + { + "assignments": [ + 1153 + ], + "declarations": [ + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "assetInfo", + "nameLocation": "10309:9:1", + "nodeType": "VariableDeclaration", + "scope": 1202, + "src": "10286:32:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 1152, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1151, + "name": "Comet.AssetInfo", + "nameLocations": [ + "10286:5:1", + "10292:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "10286:15:1" + }, + "referencedDeclaration": 306, + "src": "10286:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1156, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "10340:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "id": 1154, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10327:12:1", + "memberName": "getAssetInfo", + "nodeType": "MemberAccess", + "referencedDeclaration": 340, + "src": "10321:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", + "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10321:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10286:60:1" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1160, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10409:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10419:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10409:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1162, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10452:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10462:22:1", + "memberName": "borrowCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 299, + "src": "10452:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1165, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10510:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10520:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10510:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1164, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10504:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10504:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10527:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 619, + "src": "10504:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10504:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1170, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10574:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10584:25:1", + "memberName": "liquidateCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 301, + "src": "10574:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "expression": { + "id": 1172, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10638:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10648:17:1", + "memberName": "liquidationFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 303, + "src": "10638:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1175, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10687:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10697:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10687:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1174, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10681:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10681:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10704:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "10681:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10681:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1182, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10742:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10752:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 295, + "src": "10742:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10727:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10733:8:1", + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "10727:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10727:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1185, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10783:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10793:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 295, + "src": "10783:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1187, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10823:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1188, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10833:9:1", + "memberName": "supplyCap", + "nodeType": "MemberAccess", + "referencedDeclaration": 305, + "src": "10823:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1190, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10876:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10866:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1189, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10860:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10883:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 629, + "src": "10860:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10860:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1197, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10937:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10947:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10937:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1195, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10914:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10920:16:1", + "memberName": "totalsCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 588, + "src": "10914:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10914:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1159, + "name": "CollateralAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 702, + "src": "10366:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", + "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10392:15:1", + "10434:16:1", + "10494:8:1", + "10547:25:1", + "10619:17:1", + "10675:4:1", + "10720:5:1", + "10772:9:1", + "10812:9:1", + "10852:6:1", + "10901:11:1" + ], + "names": [ + "collateralAsset", + "collateralFactor", + "decimals", + "liquidateCollateralFactor", + "liquidationFactor", + "name", + "price", + "priceFeed", + "supplyCap", + "symbol", + "totalSupply" + ], + "nodeType": "FunctionCall", + "src": "10366:596:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "functionReturnParameters": 1148, + "id": 1201, + "nodeType": "Return", + "src": "10353:609:1" + } + ] + }, + "functionSelector": "cbe293fa", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "collateralInfo", + "nameLocation": "10194:14:1", + "parameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1141, + "mutability": "mutable", + "name": "comet", + "nameLocation": "10215:5:1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10209:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1139, + "name": "Comet", + "nameLocations": [ + "10209:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "10209:5:1" + }, + "referencedDeclaration": 598, + "src": "10209:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "index", + "nameLocation": "10228:5:1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10222:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1142, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "10222:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "10208:26:1" + }, + "returnParameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10256:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset" + }, + "typeName": { + "id": 1146, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1145, + "name": "CollateralAsset", + "nameLocations": [ + "10256:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "10256:15:1" + }, + "referencedDeclaration": 702, + "src": "10256:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "visibility": "internal" + } + ], + "src": "10255:24:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1267, + "nodeType": "FunctionDefinition", + "src": "10971:925:1", + "body": { + "id": 1266, + "nodeType": "Block", + "src": "11151:745:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1218, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11229:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11235:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11229:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1225, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11310:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1228, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "11327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11319:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11319:7:1", + "typeDescriptions": {} + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11319:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1221, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11283:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11277:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1220, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "11271:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11300:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 607, + "src": "11271:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:63:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 1234, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11388:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11394:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11388:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1231, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "11353:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11359:19:1", + "memberName": "collateralBalanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 543, + "src": "11353:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", + "typeString": "function (address,address) view external returns (uint128)" + } + }, + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11353:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "expression": { + "id": 1237, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11444:16:1", + "memberName": "collateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 683, + "src": "11438:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1239, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1240, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11486:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 685, + "src": "11480:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1241, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11531:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11537:25:1", + "memberName": "liquidateCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 689, + "src": "11531:31:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1243, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11597:17:1", + "memberName": "liquidationFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 691, + "src": "11591:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1245, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11630:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11636:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 687, + "src": "11630:10:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 1247, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11663:5:1", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 693, + "src": "11657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1249, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11689:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11695:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 695, + "src": "11689:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1251, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11725:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11731:9:1", + "memberName": "supplyCap", + "nodeType": "MemberAccess", + "referencedDeclaration": 697, + "src": "11725:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1253, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11758:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11764:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 699, + "src": "11758:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 1255, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11793:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11799:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 701, + "src": "11793:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1262, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11874:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1258, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11841:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11847:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11841:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1257, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "11835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11864:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "11835:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11835:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1217, + "name": "CollateralAssetWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "11170:31:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", + "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "11212:15:1", + "11260:9:1", + "11344:7:1", + "11420:16:1", + "11470:8:1", + "11504:25:1", + "11572:17:1", + "11624:4:1", + "11650:5:1", + "11678:9:1", + "11714:9:1", + "11750:6:1", + "11780:11:1", + "11820:13:1" + ], + "names": [ + "collateralAsset", + "allowance", + "balance", + "collateralFactor", + "decimals", + "liquidateCollateralFactor", + "liquidationFactor", + "name", + "price", + "priceFeed", + "supplyCap", + "symbol", + "totalSupply", + "walletBalance" + ], + "nodeType": "FunctionCall", + "src": "11170:721:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "functionReturnParameters": 1216, + "id": 1265, + "nodeType": "Return", + "src": "11157:734:1" + } + ] + }, + "functionSelector": "c2815c0b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "collateralInfoWithAccount", + "nameLocation": "10980:25:1", + "parameters": { + "id": 1212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1206, + "mutability": "mutable", + "name": "comet", + "nameLocation": "11017:5:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11011:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1205, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1204, + "name": "Comet", + "nameLocations": [ + "11011:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "11011:5:1" + }, + "referencedDeclaration": 598, + "src": "11011:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1209, + "mutability": "mutable", + "name": "asset", + "nameLocation": "11051:5:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11028:28:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset" + }, + "typeName": { + "id": 1208, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1207, + "name": "CollateralAsset", + "nameLocations": [ + "11028:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "11028:15:1" + }, + "referencedDeclaration": 702, + "src": "11028:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1211, + "mutability": "mutable", + "name": "account", + "nameLocation": "11078:7:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11062:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11062:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "11005:84:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11111:38:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + }, + "typeName": { + "id": 1214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1213, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "11111:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "11111:31:1" + }, + "referencedDeclaration": 731, + "src": "11111:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "visibility": "internal" + } + ], + "src": "11110:40:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CometQuery", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1268 + ], + "name": "CometQuery", + "nameLocation": "4161:10:1", + "scope": 1269, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 1 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CometQuery.sol/ERC20.json b/web/helpers/Sleuth/out/CometQuery.sol/ERC20.json new file mode 100644 index 0000000..44ae29b --- /dev/null +++ b/web/helpers/Sleuth/out/CometQuery.sol/ERC20.json @@ -0,0 +1,13477 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e", + "balanceOf(address)": "70a08231", + "decimals()": "313ce567", + "name()": "06fdde03", + "symbol()": "95d89b41" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "decimals", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CometQuery.sol": "ERC20" + }, + "libraries": {}, + "viaIR": true + }, + "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CometQuery.sol", + "id": 1269, + "exportedSymbols": { + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 + ], + "ERC20": [ + 630 + ] + }, + "nodeType": "SourceUnit", + "src": "39:11860:1", + "nodes": [ + { + "id": 289, + "nodeType": "PragmaDirective", + "src": "39:24:1", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 598, + "nodeType": "ContractDefinition", + "src": "65:3743:1", + "nodes": [ + { + "id": 306, + "nodeType": "StructDefinition", + "src": "85:226:1", + "canonicalName": "Comet.AssetInfo", + "members": [ + { + "constant": false, + "id": 291, + "mutability": "mutable", + "name": "offset", + "nameLocation": "114:6:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "108:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 290, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "108:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 293, + "mutability": "mutable", + "name": "asset", + "nameLocation": "134:5:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "126:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "126:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 295, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "153:9:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "145:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 297, + "mutability": "mutable", + "name": "scale", + "nameLocation": "175:5:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "168:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 296, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 299, + "mutability": "mutable", + "name": "borrowCollateralFactor", + "nameLocation": "193:22:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "186:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 298, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "186:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "228:25:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "221:32:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 300, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "221:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "266:17:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "259:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 302, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "259:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "297:9:1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "289:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 304, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "289:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "name": "AssetInfo", + "nameLocation": "92:9:1", + "scope": 598, + "visibility": "public" + }, + { + "id": 323, + "nodeType": "StructDefinition", + "src": "315:252:1", + "canonicalName": "Comet.TotalsBasic", + "members": [ + { + "constant": false, + "id": 308, + "mutability": "mutable", + "name": "baseSupplyIndex", + "nameLocation": "347:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "340:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 307, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 310, + "mutability": "mutable", + "name": "baseBorrowIndex", + "nameLocation": "375:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "368:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 309, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "368:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "trackingSupplyIndex", + "nameLocation": "403:19:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "396:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 311, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "trackingBorrowIndex", + "nameLocation": "435:19:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "428:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 313, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "428:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 316, + "mutability": "mutable", + "name": "totalSupplyBase", + "nameLocation": "468:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "460:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 315, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "totalBorrowBase", + "nameLocation": "497:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "489:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 317, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "489:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "lastAccrualTime", + "nameLocation": "525:15:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "518:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 319, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "518:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "mutability": "mutable", + "name": "pauseFlags", + "nameLocation": "552:10:1", + "nodeType": "VariableDeclaration", + "scope": 323, + "src": "546:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 321, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "546:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "TotalsBasic", + "nameLocation": "322:11:1", + "scope": 598, + "visibility": "public" + }, + { + "id": 332, + "nodeType": "FunctionDefinition", + "src": "571:86:1", + "functionSelector": "7ac88ed1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "quoteCollateral", + "nameLocation": "580:15:1", + "parameters": { + "id": 328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "asset", + "nameLocation": "604:5:1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "596:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "596:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "baseAmount", + "nameLocation": "616:10:1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "611:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "595:32:1" + }, + "returnParameters": { + "id": 331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 330, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 332, + "src": "651:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 329, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "651:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "650:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 340, + "nodeType": "FunctionDefinition", + "src": "661:72:1", + "functionSelector": "c8c7fe6b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetInfo", + "nameLocation": "670:12:1", + "parameters": { + "id": 335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 334, + "mutability": "mutable", + "name": "i", + "nameLocation": "689:1:1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "683:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 333, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "682:9:1" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "715:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 337, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 336, + "name": "AssetInfo", + "nameLocations": [ + "715:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "715:9:1" + }, + "referencedDeclaration": 306, + "src": "715:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "src": "714:18:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 348, + "nodeType": "FunctionDefinition", + "src": "737:87:1", + "functionSelector": "3b3bec2e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetInfoByAddress", + "nameLocation": "746:21:1", + "parameters": { + "id": 343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 342, + "mutability": "mutable", + "name": "asset", + "nameLocation": "776:5:1", + "nodeType": "VariableDeclaration", + "scope": 348, + "src": "768:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "768:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "767:15:1" + }, + "returnParameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 346, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 348, + "src": "806:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 345, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 344, + "name": "AssetInfo", + "nameLocations": [ + "806:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "806:9:1" + }, + "referencedDeclaration": 306, + "src": "806:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "src": "805:18:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 355, + "nodeType": "FunctionDefinition", + "src": "828:75:1", + "functionSelector": "9ff567f8", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getCollateralReserves", + "nameLocation": "837:21:1", + "parameters": { + "id": 351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 350, + "mutability": "mutable", + "name": "asset", + "nameLocation": "867:5:1", + "nodeType": "VariableDeclaration", + "scope": 355, + "src": "859:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "859:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "858:15:1" + }, + "returnParameters": { + "id": 354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 353, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 355, + "src": "897:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 352, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "897:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "896:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 360, + "nodeType": "FunctionDefinition", + "src": "907:51:1", + "functionSelector": "0902f1ac", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nameLocation": "916:11:1", + "parameters": { + "id": 356, + "nodeType": "ParameterList", + "parameters": [], + "src": "927:2:1" + }, + "returnParameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "953:3:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 357, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "953:3:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "952:5:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 367, + "nodeType": "FunctionDefinition", + "src": "962:66:1", + "functionSelector": "41976e09", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nameLocation": "971:8:1", + "parameters": { + "id": 363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 362, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "988:9:1", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "980:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "979:19:1" + }, + "returnParameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 367, + "src": "1022:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 364, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1022:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1021:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 374, + "nodeType": "FunctionDefinition", + "src": "1032:78:1", + "functionSelector": "38aa813f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isBorrowCollateralized", + "nameLocation": "1041:22:1", + "parameters": { + "id": 370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "account", + "nameLocation": "1072:7:1", + "nodeType": "VariableDeclaration", + "scope": 374, + "src": "1064:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 368, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1063:17:1" + }, + "returnParameters": { + "id": 373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 374, + "src": "1104:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 371, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1104:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1103:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 381, + "nodeType": "FunctionDefinition", + "src": "1114:70:1", + "functionSelector": "042e02cf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isLiquidatable", + "nameLocation": "1123:14:1", + "parameters": { + "id": 377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 376, + "mutability": "mutable", + "name": "account", + "nameLocation": "1146:7:1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "1138:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1138:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1137:17:1" + }, + "returnParameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 381, + "src": "1178:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1178:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1177:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 386, + "nodeType": "FunctionDefinition", + "src": "1188:55:1", + "functionSelector": "18160ddd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "1197:11:1", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [], + "src": "1208:2:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "1234:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1234:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1233:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 391, + "nodeType": "FunctionDefinition", + "src": "1247:55:1", + "functionSelector": "8285ef40", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalBorrow", + "nameLocation": "1256:11:1", + "parameters": { + "id": 387, + "nodeType": "ParameterList", + "parameters": [], + "src": "1267:2:1" + }, + "returnParameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 391, + "src": "1293:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1292:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 398, + "nodeType": "FunctionDefinition", + "src": "1306:66:1", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1315:9:1", + "parameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1333:5:1", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1325:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1325:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1324:15:1" + }, + "returnParameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "1363:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1362:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 405, + "nodeType": "FunctionDefinition", + "src": "1376:74:1", + "functionSelector": "374c49b4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceOf", + "nameLocation": "1385:15:1", + "parameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "account", + "nameLocation": "1409:7:1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1401:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1401:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1400:17:1" + }, + "returnParameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 405, + "src": "1441:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1441:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1440:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 412, + "nodeType": "FunctionDefinition", + "src": "1454:72:1", + "functionSelector": "d955759d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSupplyRate", + "nameLocation": "1463:13:1", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "1482:11:1", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1477:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1477:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1476:18:1" + }, + "returnParameters": { + "id": 411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 412, + "src": "1518:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 409, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1518:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1517:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 419, + "nodeType": "FunctionDefinition", + "src": "1530:72:1", + "functionSelector": "9fa83b5a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getBorrowRate", + "nameLocation": "1539:13:1", + "parameters": { + "id": 415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "1558:11:1", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1553:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 413, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1553:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1552:18:1" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "1594:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 416, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1594:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1593:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 424, + "nodeType": "FunctionDefinition", + "src": "1606:55:1", + "functionSelector": "7eb71131", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUtilization", + "nameLocation": "1615:14:1", + "parameters": { + "id": 420, + "nodeType": "ParameterList", + "parameters": [], + "src": "1629:2:1" + }, + "returnParameters": { + "id": 423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 422, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "1655:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 421, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1655:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1654:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 429, + "nodeType": "FunctionDefinition", + "src": "1665:52:1", + "functionSelector": "0c340a24", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "governor", + "nameLocation": "1674:8:1", + "parameters": { + "id": 425, + "nodeType": "ParameterList", + "parameters": [], + "src": "1682:2:1" + }, + "returnParameters": { + "id": 428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 427, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "1708:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 426, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1707:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 434, + "nodeType": "FunctionDefinition", + "src": "1721:57:1", + "functionSelector": "24a3d622", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "pauseGuardian", + "nameLocation": "1730:13:1", + "parameters": { + "id": 430, + "nodeType": "ParameterList", + "parameters": [], + "src": "1743:2:1" + }, + "returnParameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 432, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 434, + "src": "1769:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1768:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 439, + "nodeType": "FunctionDefinition", + "src": "1782:53:1", + "functionSelector": "c55dae63", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseToken", + "nameLocation": "1791:9:1", + "parameters": { + "id": 435, + "nodeType": "ParameterList", + "parameters": [], + "src": "1800:2:1" + }, + "returnParameters": { + "id": 438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 437, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "1826:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1825:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 444, + "nodeType": "FunctionDefinition", + "src": "1839:62:1", + "functionSelector": "e7dad6bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTokenPriceFeed", + "nameLocation": "1848:18:1", + "parameters": { + "id": 440, + "nodeType": "ParameterList", + "parameters": [], + "src": "1866:2:1" + }, + "returnParameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 444, + "src": "1892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 441, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1892:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1891:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 449, + "nodeType": "FunctionDefinition", + "src": "1905:61:1", + "functionSelector": "44ff241d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "extensionDelegate", + "nameLocation": "1914:17:1", + "parameters": { + "id": 445, + "nodeType": "ParameterList", + "parameters": [], + "src": "1931:2:1" + }, + "returnParameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 449, + "src": "1957:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1957:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1956:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 454, + "nodeType": "FunctionDefinition", + "src": "1970:51:1", + "functionSelector": "a5b4ff79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyKink", + "nameLocation": "1979:10:1", + "parameters": { + "id": 450, + "nodeType": "ParameterList", + "parameters": [], + "src": "1989:2:1" + }, + "returnParameters": { + "id": 453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 452, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 454, + "src": "2015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2014:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 459, + "nodeType": "FunctionDefinition", + "src": "2025:76:1", + "functionSelector": "5a94b8d1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateSlopeLow", + "nameLocation": "2034:35:1", + "parameters": { + "id": 455, + "nodeType": "ParameterList", + "parameters": [], + "src": "2069:2:1" + }, + "returnParameters": { + "id": 458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 457, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 459, + "src": "2095:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 456, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2094:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 464, + "nodeType": "FunctionDefinition", + "src": "2105:77:1", + "functionSelector": "804de71f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateSlopeHigh", + "nameLocation": "2114:36:1", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "2150:2:1" + }, + "returnParameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 464, + "src": "2176:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2175:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 469, + "nodeType": "FunctionDefinition", + "src": "2186:72:1", + "functionSelector": "94920cca", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supplyPerSecondInterestRateBase", + "nameLocation": "2195:31:1", + "parameters": { + "id": 465, + "nodeType": "ParameterList", + "parameters": [], + "src": "2226:2:1" + }, + "returnParameters": { + "id": 468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 467, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "2252:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 466, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2252:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2251:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 474, + "nodeType": "FunctionDefinition", + "src": "2262:51:1", + "functionSelector": "9241a561", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowKink", + "nameLocation": "2271:10:1", + "parameters": { + "id": 470, + "nodeType": "ParameterList", + "parameters": [], + "src": "2281:2:1" + }, + "returnParameters": { + "id": 473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 472, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 474, + "src": "2307:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 471, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2307:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2306:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 479, + "nodeType": "FunctionDefinition", + "src": "2317:76:1", + "functionSelector": "2d05670b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateSlopeLow", + "nameLocation": "2326:35:1", + "parameters": { + "id": 475, + "nodeType": "ParameterList", + "parameters": [], + "src": "2361:2:1" + }, + "returnParameters": { + "id": 478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 477, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 479, + "src": "2387:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 476, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2387:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2386:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 484, + "nodeType": "FunctionDefinition", + "src": "2397:77:1", + "functionSelector": "2a48cf12", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateSlopeHigh", + "nameLocation": "2406:36:1", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2442:2:1" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "2468:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 481, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2468:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2467:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 489, + "nodeType": "FunctionDefinition", + "src": "2478:72:1", + "functionSelector": "7914acc7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowPerSecondInterestRateBase", + "nameLocation": "2487:31:1", + "parameters": { + "id": 485, + "nodeType": "ParameterList", + "parameters": [], + "src": "2518:2:1" + }, + "returnParameters": { + "id": 488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 487, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 489, + "src": "2544:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 486, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2544:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2543:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 494, + "nodeType": "FunctionDefinition", + "src": "2554:62:1", + "functionSelector": "1f5954bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "storeFrontPriceFactor", + "nameLocation": "2563:21:1", + "parameters": { + "id": 490, + "nodeType": "ParameterList", + "parameters": [], + "src": "2584:2:1" + }, + "returnParameters": { + "id": 493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 492, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 494, + "src": "2610:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2610:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2609:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 499, + "nodeType": "FunctionDefinition", + "src": "2620:50:1", + "functionSelector": "44c1e5eb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseScale", + "nameLocation": "2629:9:1", + "parameters": { + "id": 495, + "nodeType": "ParameterList", + "parameters": [], + "src": "2638:2:1" + }, + "returnParameters": { + "id": 498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 499, + "src": "2664:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2664:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2663:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 504, + "nodeType": "FunctionDefinition", + "src": "2674:59:1", + "functionSelector": "aba7f15e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "trackingIndexScale", + "nameLocation": "2683:18:1", + "parameters": { + "id": 500, + "nodeType": "ParameterList", + "parameters": [], + "src": "2701:2:1" + }, + "returnParameters": { + "id": 503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "2727:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 501, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2727:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2726:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 509, + "nodeType": "FunctionDefinition", + "src": "2737:64:1", + "functionSelector": "189bb2f1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingSupplySpeed", + "nameLocation": "2746:23:1", + "parameters": { + "id": 505, + "nodeType": "ParameterList", + "parameters": [], + "src": "2769:2:1" + }, + "returnParameters": { + "id": 508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 507, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 509, + "src": "2795:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 506, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2794:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 514, + "nodeType": "FunctionDefinition", + "src": "2805:64:1", + "functionSelector": "9ea99a5a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingBorrowSpeed", + "nameLocation": "2814:23:1", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "2837:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 514, + "src": "2863:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 511, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2862:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 519, + "nodeType": "FunctionDefinition", + "src": "2873:58:1", + "functionSelector": "9364e18a", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseMinForRewards", + "nameLocation": "2882:17:1", + "parameters": { + "id": 515, + "nodeType": "ParameterList", + "parameters": [], + "src": "2899:2:1" + }, + "returnParameters": { + "id": 518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 517, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 519, + "src": "2925:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 516, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2925:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2924:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 524, + "nodeType": "FunctionDefinition", + "src": "2935:54:1", + "functionSelector": "300e6beb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseBorrowMin", + "nameLocation": "2944:13:1", + "parameters": { + "id": 520, + "nodeType": "ParameterList", + "parameters": [], + "src": "2957:2:1" + }, + "returnParameters": { + "id": 523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "2983:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2983:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2982:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 529, + "nodeType": "FunctionDefinition", + "src": "2993:55:1", + "functionSelector": "32176c49", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "targetReserves", + "nameLocation": "3002:14:1", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [], + "src": "3016:2:1" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "3042:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3042:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3041:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 534, + "nodeType": "FunctionDefinition", + "src": "3052:51:1", + "functionSelector": "a46fe83b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "numAssets", + "nameLocation": "3061:9:1", + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [], + "src": "3070:2:1" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "3096:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 531, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3096:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3095:7:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 543, + "nodeType": "FunctionDefinition", + "src": "3107:93:1", + "functionSelector": "5c2549ee", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "collateralBalanceOf", + "nameLocation": "3116:19:1", + "parameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "account", + "nameLocation": "3144:7:1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3136:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3136:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "asset", + "nameLocation": "3161:5:1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3153:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3153:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3135:32:1" + }, + "returnParameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 541, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "3191:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 540, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "3191:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "3190:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 550, + "nodeType": "FunctionDefinition", + "src": "3204:77:1", + "functionSelector": "ab9ba7f4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseTrackingAccrued", + "nameLocation": "3213:19:1", + "parameters": { + "id": 546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "account", + "nameLocation": "3241:7:1", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "3233:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3233:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3232:17:1" + }, + "returnParameters": { + "id": 549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "3273:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 547, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3273:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3272:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 555, + "nodeType": "FunctionDefinition", + "src": "3285:59:1", + "functionSelector": "a20ed596", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseAccrualScale", + "nameLocation": "3294:16:1", + "parameters": { + "id": 551, + "nodeType": "ParameterList", + "parameters": [], + "src": "3310:2:1" + }, + "returnParameters": { + "id": 554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 555, + "src": "3336:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 552, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3336:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3335:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 560, + "nodeType": "FunctionDefinition", + "src": "3348:57:1", + "functionSelector": "96e7a9c1", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "baseIndexScale", + "nameLocation": "3357:14:1", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [], + "src": "3371:2:1" + }, + "returnParameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 560, + "src": "3397:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 557, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3397:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3396:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 565, + "nodeType": "FunctionDefinition", + "src": "3409:54:1", + "functionSelector": "0f21d96b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factorScale", + "nameLocation": "3418:11:1", + "parameters": { + "id": 561, + "nodeType": "ParameterList", + "parameters": [], + "src": "3429:2:1" + }, + "returnParameters": { + "id": 564, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 565, + "src": "3455:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 562, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3455:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3454:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 570, + "nodeType": "FunctionDefinition", + "src": "3467:53:1", + "functionSelector": "a0fbddaf", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "priceScale", + "nameLocation": "3476:10:1", + "parameters": { + "id": 566, + "nodeType": "ParameterList", + "parameters": [], + "src": "3486:2:1" + }, + "returnParameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 568, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 570, + "src": "3512:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 567, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3512:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3511:8:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 575, + "nodeType": "FunctionDefinition", + "src": "3524:51:1", + "functionSelector": "94b2294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "maxAssets", + "nameLocation": "3533:9:1", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [], + "src": "3542:2:1" + }, + "returnParameters": { + "id": 574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 573, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 575, + "src": "3568:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 572, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3568:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "3567:7:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 581, + "nodeType": "FunctionDefinition", + "src": "3579:66:1", + "functionSelector": "b9f0baf7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalsBasic", + "nameLocation": "3588:11:1", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [], + "src": "3599:2:1" + }, + "returnParameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 579, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "3625:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic" + }, + "typeName": { + "id": 578, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 577, + "name": "TotalsBasic", + "nameLocations": [ + "3625:11:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 323, + "src": "3625:11:1" + }, + "referencedDeclaration": 323, + "src": "3625:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", + "typeString": "struct Comet.TotalsBasic" + } + }, + "visibility": "internal" + } + ], + "src": "3624:20:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 588, + "nodeType": "FunctionDefinition", + "src": "3649:70:1", + "functionSelector": "59e017bd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalsCollateral", + "nameLocation": "3658:16:1", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "token", + "nameLocation": "3683:5:1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "3675:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3675:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3674:15:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "3713:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3713:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3712:6:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 597, + "nodeType": "FunctionDefinition", + "src": "3723:83:1", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3732:9:1", + "parameters": { + "id": 593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3750:5:1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3742:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3742:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3765:7:1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3757:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3741:32:1" + }, + "returnParameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 597, + "src": "3797:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3797:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3796:9:1" + }, + "scope": 598, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comet", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 598 + ], + "name": "Comet", + "nameLocation": "75:5:1", + "scope": 1269, + "usedErrors": [] + }, + { + "id": 630, + "nodeType": "ContractDefinition", + "src": "3810:340:1", + "nodes": [ + { + "id": 607, + "nodeType": "FunctionDefinition", + "src": "3830:80:1", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "3839:9:1", + "parameters": { + "id": 603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 600, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3857:5:1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3849:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3849:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 602, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3872:7:1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3864:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3864:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3848:32:1" + }, + "returnParameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 607, + "src": "3904:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3904:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3903:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 614, + "nodeType": "FunctionDefinition", + "src": "3914:63:1", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3923:9:1", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3941:5:1", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "3933:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3933:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3932:15:1" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 612, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 614, + "src": "3971:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3971:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3970:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 619, + "nodeType": "FunctionDefinition", + "src": "3981:49:1", + "functionSelector": "313ce567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nameLocation": "3990:8:1", + "parameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "3998:2:1" + }, + "returnParameters": { + "id": 618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 617, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 619, + "src": "4024:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 616, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4024:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4023:6:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 624, + "nodeType": "FunctionDefinition", + "src": "4034:54:1", + "functionSelector": "06fdde03", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "4043:4:1", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [], + "src": "4047:2:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "4073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4072:15:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 629, + "nodeType": "FunctionDefinition", + "src": "4092:56:1", + "functionSelector": "95d89b41", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "4101:6:1", + "parameters": { + "id": 625, + "nodeType": "ParameterList", + "parameters": [], + "src": "4107:2:1" + }, + "returnParameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "4133:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 626, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4133:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4132:15:1" + }, + "scope": 630, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC20", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 630 + ], + "name": "ERC20", + "nameLocation": "3820:5:1", + "scope": 1269, + "usedErrors": [] + }, + { + "id": 1268, + "nodeType": "ContractDefinition", + "src": "4152:7746:1", + "nodes": [ + { + "id": 639, + "nodeType": "VariableDeclaration", + "src": "4176:60:1", + "constant": true, + "mutability": "constant", + "name": "SECONDS_PER_YEAR", + "nameLocation": "4199:16:1", + "scope": 1268, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 631, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4176:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3630", + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4218:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4223:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "4218:7:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3234", + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4228:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "4218:12:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "333635", + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4233:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_365_by_1", + "typeString": "int_const 365" + }, + "value": "365" + }, + "src": "4218:18:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + } + }, + "visibility": "internal" + }, + { + "id": 656, + "nodeType": "StructDefinition", + "src": "4241:184:1", + "canonicalName": "CometQuery.BaseAsset", + "members": [ + { + "constant": false, + "id": 641, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "4272:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4264:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4264:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 643, + "mutability": "mutable", + "name": "balanceOfComet", + "nameLocation": "4292:14:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4287:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 642, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4317:8:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4312:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4312:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "minBorrow", + "nameLocation": "4336:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4331:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4331:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "name", + "nameLocation": "4358:4:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4351:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4351:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4376:9:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4368:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4368:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 653, + "mutability": "mutable", + "name": "price", + "nameLocation": "4396:5:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4391:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4391:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 655, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4414:6:1", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4407:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 654, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4407:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "BaseAsset", + "nameLocation": "4248:9:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 679, + "nodeType": "StructDefinition", + "src": "4429:262:1", + "canonicalName": "CometQuery.BaseAssetWithAccountState", + "members": [ + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "4476:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4468:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4468:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "4496:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4491:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4491:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 662, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4516:7:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4511:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4511:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 664, + "mutability": "mutable", + "name": "balanceOfComet", + "nameLocation": "4534:14:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4529:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4529:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 666, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4559:8:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4554:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 665, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4554:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 668, + "mutability": "mutable", + "name": "minBorrow", + "nameLocation": "4578:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4573:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 667, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 670, + "mutability": "mutable", + "name": "name", + "nameLocation": "4600:4:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4593:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 669, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4593:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 672, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4618:9:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4610:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "price", + "nameLocation": "4638:5:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4633:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4633:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 676, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4656:6:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4649:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 675, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4649:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 678, + "mutability": "mutable", + "name": "walletBalance", + "nameLocation": "4673:13:1", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "4668:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4668:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "BaseAssetWithAccountState", + "nameLocation": "4436:25:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 702, + "nodeType": "StructDefinition", + "src": "4695:284:1", + "canonicalName": "CometQuery.CollateralAsset", + "members": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "collateralAsset", + "nameLocation": "4732:15:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4724:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4724:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "4758:16:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4753:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 682, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4753:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 685, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "4785:8:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4780:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4780:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "mutability": "mutable", + "name": "name", + "nameLocation": "4806:4:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4799:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 686, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4799:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "4821:25:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4816:30:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4816:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "4857:17:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4852:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 690, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4852:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "price", + "nameLocation": "4885:5:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4880:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4880:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "4904:9:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4896:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4896:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "4924:9:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4919:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 696, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4919:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "4946:6:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4939:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 698, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 701, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "4963:11:1", + "nodeType": "VariableDeclaration", + "scope": 702, + "src": "4958:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4958:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CollateralAsset", + "nameLocation": "4702:15:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 731, + "nodeType": "StructDefinition", + "src": "4983:362:1", + "canonicalName": "CometQuery.CollateralAssetWithAccountState", + "members": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "collateralAsset", + "nameLocation": "5036:15:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5028:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5028:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "5062:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5057:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5057:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "balance", + "nameLocation": "5082:7:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5077:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5077:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "5100:16:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5095:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 712, + "mutability": "mutable", + "name": "decimals", + "nameLocation": "5127:8:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5122:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 711, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5122:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "name", + "nameLocation": "5148:4:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5141:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 713, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5141:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "liquidateCollateralFactor", + "nameLocation": "5163:25:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5158:30:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 715, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5158:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "liquidationFactor", + "nameLocation": "5199:17:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5194:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5194:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "price", + "nameLocation": "5227:5:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5222:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 719, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5222:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 722, + "mutability": "mutable", + "name": "priceFeed", + "nameLocation": "5246:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5238:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5238:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "supplyCap", + "nameLocation": "5266:9:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5261:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "symbol", + "nameLocation": "5288:6:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5281:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 725, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5281:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 728, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "5305:11:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5300:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 727, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5300:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 730, + "mutability": "mutable", + "name": "walletBalance", + "nameLocation": "5327:13:1", + "nodeType": "VariableDeclaration", + "scope": 731, + "src": "5322:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 729, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5322:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CollateralAssetWithAccountState", + "nameLocation": "4990:31:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 759, + "nodeType": "StructDefinition", + "src": "5349:357:1", + "canonicalName": "CometQuery.CometState", + "members": [ + { + "constant": false, + "id": 734, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "5383:9:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5373:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + }, + "typeName": { + "id": 733, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 732, + "name": "BaseAsset", + "nameLocations": [ + "5373:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 656, + "src": "5373:9:1" + }, + "referencedDeclaration": 656, + "src": "5373:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 736, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "5403:17:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5398:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5398:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 738, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "5431:23:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5426:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 737, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5426:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 740, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "5465:23:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5460:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5460:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 742, + "mutability": "mutable", + "name": "borrowAPR", + "nameLocation": "5499:9:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5494:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5494:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "collateralAssets", + "nameLocation": "5532:16:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5514:34:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + }, + "typeName": { + "baseType": { + "id": 744, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 743, + "name": "CollateralAsset", + "nameLocations": [ + "5514:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "5514:15:1" + }, + "referencedDeclaration": 702, + "src": "5514:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 745, + "nodeType": "ArrayTypeName", + "src": "5514:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 748, + "mutability": "mutable", + "name": "earnAPR", + "nameLocation": "5559:7:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5554:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 747, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5554:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 750, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "5577:11:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5572:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5572:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "totalBorrowPrincipal", + "nameLocation": "5599:20:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5594:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5594:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 754, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "5630:11:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5625:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5625:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 756, + "mutability": "mutable", + "name": "totalSupplyPrincipal", + "nameLocation": "5652:20:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5647:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5647:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "5683:18:1", + "nodeType": "VariableDeclaration", + "scope": 759, + "src": "5678:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5678:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CometState", + "nameLocation": "5356:10:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 789, + "nodeType": "StructDefinition", + "src": "5710:431:1", + "canonicalName": "CometQuery.CometStateWithAccountState", + "members": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "5776:9:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5750:35:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + }, + "typeName": { + "id": 761, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 760, + "name": "BaseAssetWithAccountState", + "nameLocations": [ + "5750:25:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 679, + "src": "5750:25:1" + }, + "referencedDeclaration": 679, + "src": "5750:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 764, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "5796:17:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5791:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 763, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5791:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 766, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "5824:23:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5819:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5819:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 768, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "5858:23:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5853:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 767, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5853:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "borrowAPR", + "nameLocation": "5892:9:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5887:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5887:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 772, + "mutability": "mutable", + "name": "bulkerAllowance", + "nameLocation": "5912:15:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5907:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 771, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5907:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 776, + "mutability": "mutable", + "name": "collateralAssets", + "nameLocation": "5967:16:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5933:50:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + }, + "typeName": { + "baseType": { + "id": 774, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 773, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "5933:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "5933:31:1" + }, + "referencedDeclaration": 731, + "src": "5933:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 775, + "nodeType": "ArrayTypeName", + "src": "5933:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 778, + "mutability": "mutable", + "name": "earnAPR", + "nameLocation": "5994:7:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "5989:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 777, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5989:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 780, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "6012:11:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6007:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 779, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6007:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 782, + "mutability": "mutable", + "name": "totalBorrowPrincipal", + "nameLocation": "6034:20:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6029:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 781, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6029:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 784, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "6065:11:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6060:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 783, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6060:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "totalSupplyPrincipal", + "nameLocation": "6087:20:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6082:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6082:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6118:18:1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "6113:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6113:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CometStateWithAccountState", + "nameLocation": "5717:26:1", + "scope": 1268, + "visibility": "public" + }, + { + "id": 979, + "nodeType": "FunctionDefinition", + "src": "6145:2007:1", + "body": { + "id": 978, + "nodeType": "Block", + "src": "6213:1939:1", + "statements": [ + { + "assignments": [ + 799 + ], + "declarations": [ + { + "constant": false, + "id": 799, + "mutability": "mutable", + "name": "numAssets", + "nameLocation": "6224:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6219:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 798, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6219:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 803, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 800, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6236:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6242:9:1", + "memberName": "numAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 534, + "src": "6236:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6236:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6219:34:1" + }, + { + "assignments": [ + 805 + ], + "declarations": [ + { + "constant": false, + "id": 805, + "mutability": "mutable", + "name": "baseToken", + "nameLocation": "6267:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6259:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6259:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 809, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 806, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6279:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6285:9:1", + "memberName": "baseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 439, + "src": "6279:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6279:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6259:37:1" + }, + { + "assignments": [ + 811 + ], + "declarations": [ + { + "constant": false, + "id": 811, + "mutability": "mutable", + "name": "baseTokenPriceFeed", + "nameLocation": "6310:18:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6302:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6302:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 815, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 812, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6337:18:1", + "memberName": "baseTokenPriceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 444, + "src": "6331:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6331:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6302:55:1" + }, + { + "assignments": [ + 817 + ], + "declarations": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "borrowMin", + "nameLocation": "6368:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6363:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6363:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 821, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 818, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6380:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6386:13:1", + "memberName": "baseBorrowMin", + "nodeType": "MemberAccess", + "referencedDeclaration": 524, + "src": "6380:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6380:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6363:38:1" + }, + { + "assignments": [ + 823 + ], + "declarations": [ + { + "constant": false, + "id": 823, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6412:18:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6407:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 822, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6407:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 827, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 824, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6433:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6439:18:1", + "memberName": "trackingIndexScale", + "nodeType": "MemberAccess", + "referencedDeclaration": 504, + "src": "6433:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6433:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6407:52:1" + }, + { + "assignments": [ + 829 + ], + "declarations": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTrackingSupplySpeed", + "nameLocation": "6470:23:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6465:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 828, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6465:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 833, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 830, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6502:23:1", + "memberName": "baseTrackingSupplySpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 509, + "src": "6496:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6496:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6465:62:1" + }, + { + "assignments": [ + 835 + ], + "declarations": [ + { + "constant": false, + "id": 835, + "mutability": "mutable", + "name": "baseTrackingBorrowSpeed", + "nameLocation": "6538:23:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6533:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 834, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6533:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 839, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 836, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6564:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6570:23:1", + "memberName": "baseTrackingBorrowSpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 514, + "src": "6564:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6564:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6533:62:1" + }, + { + "assignments": [ + 841 + ], + "declarations": [ + { + "constant": false, + "id": 841, + "mutability": "mutable", + "name": "baseMinForRewards", + "nameLocation": "6606:17:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6601:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 840, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6601:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 845, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 842, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6632:17:1", + "memberName": "baseMinForRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 519, + "src": "6626:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6626:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6601:50:1" + }, + { + "assignments": [ + 847 + ], + "declarations": [ + { + "constant": false, + "id": 847, + "mutability": "mutable", + "name": "utilization", + "nameLocation": "6662:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6657:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 846, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6657:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 848, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6676:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6682:14:1", + "memberName": "getUtilization", + "nodeType": "MemberAccess", + "referencedDeclaration": 424, + "src": "6676:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6676:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6657:41:1" + }, + { + "assignments": [ + 853 + ], + "declarations": [ + { + "constant": false, + "id": 853, + "mutability": "mutable", + "name": "totalSupply", + "nameLocation": "6709:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6704:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 852, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6704:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 857, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 854, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6723:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6729:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 386, + "src": "6723:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6723:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6704:38:1" + }, + { + "assignments": [ + 859 + ], + "declarations": [ + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "totalBorrow", + "nameLocation": "6753:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6748:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6748:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 863, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 860, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6773:11:1", + "memberName": "totalBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 391, + "src": "6767:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6767:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6748:38:1" + }, + { + "assignments": [ + 868 + ], + "declarations": [ + { + "constant": false, + "id": 868, + "mutability": "mutable", + "name": "totalsBasic", + "nameLocation": "6817:11:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6792:36:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic" + }, + "typeName": { + "id": 867, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 866, + "name": "Comet.TotalsBasic", + "nameLocations": [ + "6792:5:1", + "6798:11:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 323, + "src": "6792:17:1" + }, + "referencedDeclaration": 323, + "src": "6792:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", + "typeString": "struct Comet.TotalsBasic" + } + }, + "visibility": "internal" + } + ], + "id": 872, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 869, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6831:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6837:11:1", + "memberName": "totalsBasic", + "nodeType": "MemberAccess", + "referencedDeclaration": 581, + "src": "6831:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", + "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" + } + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6831:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6792:58:1" + }, + { + "assignments": [ + 874 + ], + "declarations": [ + { + "constant": false, + "id": 874, + "mutability": "mutable", + "name": "borrowRatePerSecond", + "nameLocation": "6861:19:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6856:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 873, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6856:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 879, + "initialValue": { + "arguments": [ + { + "id": 877, + "name": "utilization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "6903:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 875, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6883:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6889:13:1", + "memberName": "getBorrowRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 419, + "src": "6883:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", + "typeString": "function (uint256) view external returns (uint64)" + } + }, + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6883:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6856:59:1" + }, + { + "assignments": [ + 881 + ], + "declarations": [ + { + "constant": false, + "id": 881, + "mutability": "mutable", + "name": "supplyRatePerSecond", + "nameLocation": "6926:19:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6921:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 880, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6921:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 886, + "initialValue": { + "arguments": [ + { + "id": 884, + "name": "utilization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "6968:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 882, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "6948:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6954:13:1", + "memberName": "getSupplyRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 412, + "src": "6948:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", + "typeString": "function (uint256) view external returns (uint64)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6948:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6921:59:1" + }, + { + "assignments": [ + 889 + ], + "declarations": [ + { + "constant": false, + "id": 889, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "7004:9:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "6987:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset" + }, + "typeName": { + "id": 888, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 887, + "name": "BaseAsset", + "nameLocations": [ + "6987:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 656, + "src": "6987:9:1" + }, + "referencedDeclaration": 656, + "src": "6987:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", + "typeString": "struct CometQuery.BaseAsset" + } + }, + "visibility": "internal" + } + ], + "id": 923, + "initialValue": { + "arguments": [ + { + "id": 891, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7045:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 893, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7076:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 892, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7070:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7087:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 629, + "src": "7070:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7070:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 898, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7119:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 897, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7113:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7113:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7130:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 619, + "src": "7113:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7113:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 902, + "name": "borrowMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "7159:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 904, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7188:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 903, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7182:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7182:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7199:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "7182:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7182:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 908, + "name": "baseTokenPriceFeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7224:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 911, + "name": "baseTokenPriceFeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 811, + "src": "7272:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 909, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7257:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7263:8:1", + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "7257:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7257:34:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 919, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 917, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7342:7:1", + "typeDescriptions": {} + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7342:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 914, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 805, + "src": "7321:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 913, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "7315:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7315:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7332:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "7315:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7315:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 890, + "name": "BaseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 656, + "src": "7016:9:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", + "typeString": "type(struct CometQuery.BaseAsset storage pointer)" + } + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7034:9:1", + "7062:6:1", + "7103:8:1", + "7148:9:1", + "7176:4:1", + "7213:9:1", + "7250:5:1", + "7299:14:1" + ], + "names": [ + "baseAsset", + "symbol", + "decimals", + "minBorrow", + "name", + "priceFeed", + "price", + "balanceOfComet" + ], + "nodeType": "FunctionCall", + "src": "7016:348:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6987:377:1" + }, + { + "assignments": [ + 928 + ], + "declarations": [ + { + "constant": false, + "id": 928, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "7396:6:1", + "nodeType": "VariableDeclaration", + "scope": 978, + "src": "7371:31:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + }, + "typeName": { + "baseType": { + "id": 926, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 925, + "name": "CollateralAsset", + "nameLocations": [ + "7371:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "7371:15:1" + }, + "referencedDeclaration": 702, + "src": "7371:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 927, + "nodeType": "ArrayTypeName", + "src": "7371:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + }, + "visibility": "internal" + } + ], + "id": 935, + "initialValue": { + "arguments": [ + { + "id": 933, + "name": "numAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "7427:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7405:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 930, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 929, + "name": "CollateralAsset", + "nameLocations": [ + "7409:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "7409:15:1" + }, + "referencedDeclaration": 702, + "src": "7409:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "id": 931, + "nodeType": "ArrayTypeName", + "src": "7409:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset[]" + } + } + }, + "id": 934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7405:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7371:66:1" + }, + { + "body": { + "id": 955, + "nodeType": "Block", + "src": "7481:51:1", + "statements": [ + { + "expression": { + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 946, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "7489:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 948, + "indexExpression": { + "id": 947, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7496:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7489:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 950, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "7516:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 951, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7523:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 949, + "name": "collateralInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "7501:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", + "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7501:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "src": "7489:36:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 954, + "nodeType": "ExpressionStatement", + "src": "7489:36:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 940, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7461:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 941, + "name": "numAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 799, + "src": "7465:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7461:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "initializationExpression": { + "assignments": [ + 937 + ], + "declarations": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "i", + "nameLocation": "7454:1:1", + "nodeType": "VariableDeclaration", + "scope": 956, + "src": "7448:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 936, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7448:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 939, + "initialValue": { + "hexValue": "30", + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7458:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7448:11:1" + }, + "loopExpression": { + "expression": { + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7476:3:1", + "subExpression": { + "id": 943, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "7476:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 945, + "nodeType": "ExpressionStatement", + "src": "7476:3:1" + }, + "nodeType": "ForStatement", + "src": "7443:89:1" + }, + { + "expression": { + "arguments": [ + { + "id": 958, + "name": "baseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 889, + "src": "7583:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + { + "id": 959, + "name": "baseMinForRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "7621:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 960, + "name": "baseTrackingBorrowSpeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 835, + "src": "7673:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 961, + "name": "baseTrackingSupplySpeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "7731:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 962, + "name": "borrowRatePerSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 874, + "src": "7775:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 963, + "name": "SECONDS_PER_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7797:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7775:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 965, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 928, + "src": "7841:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 966, + "name": "supplyRatePerSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 881, + "src": "7866:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 967, + "name": "SECONDS_PER_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "7888:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7866:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 969, + "name": "totalBorrow", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 859, + "src": "7927:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 970, + "name": "totalsBasic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "7970:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "id": 971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7982:15:1", + "memberName": "totalBorrowBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 318, + "src": "7970:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + { + "id": 972, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 853, + "src": "8020:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 973, + "name": "totalsBasic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "8063:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", + "typeString": "struct Comet.TotalsBasic memory" + } + }, + "id": 974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8075:15:1", + "memberName": "totalSupplyBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 316, + "src": "8063:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + { + "id": 975, + "name": "trackingIndexScale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 823, + "src": "8120:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 957, + "name": "CometState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "7551:10:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", + "typeString": "type(struct CometQuery.CometState storage pointer)" + } + }, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7572:9:1", + "7602:17:1", + "7648:23:1", + "7706:23:1", + "7764:9:1", + "7823:16:1", + "7857:7:1", + "7914:11:1", + "7948:20:1", + "8007:11:1", + "8041:20:1", + "8100:18:1" + ], + "names": [ + "baseAsset", + "baseMinForRewards", + "baseTrackingBorrowSpeed", + "baseTrackingSupplySpeed", + "borrowAPR", + "collateralAssets", + "earnAPR", + "totalBorrow", + "totalBorrowPrincipal", + "totalSupply", + "totalSupplyPrincipal", + "trackingIndexScale" + ], + "nodeType": "FunctionCall", + "src": "7551:596:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "functionReturnParameters": 797, + "id": 977, + "nodeType": "Return", + "src": "7538:609:1" + } + ] + }, + "functionSelector": "d4fc9fc6", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "6154:5:1", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "comet", + "nameLocation": "6166:5:1", + "nodeType": "VariableDeclaration", + "scope": 979, + "src": "6160:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 791, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 790, + "name": "Comet", + "nameLocations": [ + "6160:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "6160:5:1" + }, + "referencedDeclaration": 598, + "src": "6160:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + } + ], + "src": "6159:13:1" + }, + "returnParameters": { + "id": 797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 979, + "src": "6194:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState" + }, + "typeName": { + "id": 795, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 794, + "name": "CometState", + "nameLocations": [ + "6194:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 759, + "src": "6194:10:1" + }, + "referencedDeclaration": 759, + "src": "6194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", + "typeString": "struct CometQuery.CometState" + } + }, + "visibility": "internal" + } + ], + "src": "6193:19:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1138, + "nodeType": "FunctionDefinition", + "src": "8156:2025:1", + "body": { + "id": 1137, + "nodeType": "Block", + "src": "8316:1865:1", + "statements": [ + { + "assignments": [ + 994 + ], + "declarations": [ + { + "constant": false, + "id": 994, + "mutability": "mutable", + "name": "response", + "nameLocation": "8340:8:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8322:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState" + }, + "typeName": { + "id": 993, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 992, + "name": "CometState", + "nameLocations": [ + "8322:10:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 759, + "src": "8322:10:1" + }, + "referencedDeclaration": 759, + "src": "8322:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", + "typeString": "struct CometQuery.CometState" + } + }, + "visibility": "internal" + } + ], + "id": 998, + "initialValue": { + "arguments": [ + { + "id": 996, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 995, + "name": "query", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "8351:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", + "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8351:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8322:41:1" + }, + { + "assignments": [ + 1000 + ], + "declarations": [ + { + "constant": false, + "id": 1000, + "mutability": "mutable", + "name": "baseAssetSupplyBalance", + "nameLocation": "8375:22:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8370:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 999, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8370:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "arguments": [ + { + "id": 1003, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8416:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1001, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8400:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8406:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 398, + "src": "8400:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8400:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8370:54:1" + }, + { + "assignments": [ + 1007 + ], + "declarations": [ + { + "constant": false, + "id": 1007, + "mutability": "mutable", + "name": "baseAssetBorrowBalance", + "nameLocation": "8435:22:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8430:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8430:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1012, + "initialValue": { + "arguments": [ + { + "id": 1010, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1008, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8466:15:1", + "memberName": "borrowBalanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 405, + "src": "8460:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8460:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8430:60:1" + }, + { + "assignments": [ + 1015 + ], + "declarations": [ + { + "constant": false, + "id": 1015, + "mutability": "mutable", + "name": "baseAsset", + "nameLocation": "8530:9:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "8497:42:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + }, + "typeName": { + "id": 1014, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1013, + "name": "BaseAssetWithAccountState", + "nameLocations": [ + "8497:25:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 679, + "src": "8497:25:1" + }, + "referencedDeclaration": 679, + "src": "8497:25:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState" + } + }, + "visibility": "internal" + } + ], + "id": 1065, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1017, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8587:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1018, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8596:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8587:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8606:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "8587:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1026, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "8680:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1029, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8697:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1027, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8689:7:1", + "typeDescriptions": {} + } + }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8689:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1021, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8640:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8649:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8640:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1023, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8659:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "8640:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1020, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "8634:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8634:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8670:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 607, + "src": "8634:45:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8634:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1032, + "name": "baseAssetSupplyBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1000, + "src": "8721:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1033, + "name": "baseAssetBorrowBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1007, + "src": "8746:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8721:47:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1035, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8784:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8793:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8784:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8803:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 655, + "src": "8784:25:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "expression": { + "id": 1038, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8827:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8836:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8827:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1040, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8846:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 645, + "src": "8827:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1041, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8873:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8882:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8873:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1043, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8892:9:1", + "memberName": "minBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 647, + "src": "8873:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1044, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8915:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1045, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8924:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8915:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1046, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8934:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 649, + "src": "8915:23:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "expression": { + "id": 1047, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "8957:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8966:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "8957:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8976:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 651, + "src": "8957:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 1050, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9000:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9009:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9000:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9019:5:1", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 653, + "src": "9000:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1053, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9048:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9057:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9048:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9067:14:1", + "memberName": "balanceOfComet", + "nodeType": "MemberAccess", + "referencedDeclaration": 643, + "src": "9048:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1062, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9150:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1057, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9119:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 734, + "src": "9110:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", + "typeString": "struct CometQuery.BaseAsset memory" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9129:9:1", + "memberName": "baseAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 641, + "src": "9110:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1056, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "9104:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9104:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9140:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "9104:45:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9104:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1016, + "name": "BaseAssetWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 679, + "src": "8542:25:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", + "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "8576:9:1", + "8623:9:1", + "8712:7:1", + "8776:6:1", + "8817:8:1", + "8862:9:1", + "8909:4:1", + "8946:9:1", + "8993:5:1", + "9032:14:1", + "9089:13:1" + ], + "names": [ + "baseAsset", + "allowance", + "balance", + "symbol", + "decimals", + "minBorrow", + "name", + "priceFeed", + "price", + "balanceOfComet", + "walletBalance" + ], + "nodeType": "FunctionCall", + "src": "8542:623:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8497:668:1" + }, + { + "assignments": [ + 1070 + ], + "declarations": [ + { + "constant": false, + "id": 1070, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "9213:6:1", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "9172:47:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + }, + "typeName": { + "baseType": { + "id": 1068, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1067, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "9172:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "9172:31:1" + }, + "referencedDeclaration": 731, + "src": "9172:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 1069, + "nodeType": "ArrayTypeName", + "src": "9172:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + }, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 1075, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9267:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9276:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9267:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9293:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9267:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "9222:37:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 1072, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1071, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "9226:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "9226:31:1" + }, + "referencedDeclaration": 731, + "src": "9226:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "id": 1073, + "nodeType": "ArrayTypeName", + "src": "9226:33:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9222:83:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9172:133:1" + }, + { + "body": { + "id": 1105, + "nodeType": "Block", + "src": "9372:98:1", + "statements": [ + { + "expression": { + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1092, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1070, + "src": "9380:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + "id": 1094, + "indexExpression": { + "id": 1093, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9387:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9380:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1096, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "9418:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "baseExpression": { + "expression": { + "id": 1097, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9425:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9434:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9425:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1100, + "indexExpression": { + "id": 1099, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9425:28:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + { + "id": 1101, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1095, + "name": "collateralInfoWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "9392:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", + "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9392:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "src": "9380:83:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "9380:83:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1084, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9329:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 1085, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9333:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9342:16:1", + "memberName": "collateralAssets", + "nodeType": "MemberAccess", + "referencedDeclaration": 746, + "src": "9333:25:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory[] memory" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9359:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9333:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9329:36:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1106, + "initializationExpression": { + "assignments": [ + 1081 + ], + "declarations": [ + { + "constant": false, + "id": 1081, + "mutability": "mutable", + "name": "i", + "nameLocation": "9322:1:1", + "nodeType": "VariableDeclaration", + "scope": 1106, + "src": "9316:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1080, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9316:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 1083, + "initialValue": { + "hexValue": "30", + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9326:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9316:11:1" + }, + "loopExpression": { + "expression": { + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9367:3:1", + "subExpression": { + "id": 1089, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1081, + "src": "9367:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1091, + "nodeType": "ExpressionStatement", + "src": "9367:3:1" + }, + "nodeType": "ForStatement", + "src": "9311:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1108, + "name": "baseAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1015, + "src": "9537:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + } + }, + { + "expression": { + "id": 1109, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9575:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9584:17:1", + "memberName": "baseMinForRewards", + "nodeType": "MemberAccess", + "referencedDeclaration": 736, + "src": "9575:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1111, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9636:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9645:23:1", + "memberName": "baseTrackingBorrowSpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 738, + "src": "9636:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1113, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9703:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9712:23:1", + "memberName": "baseTrackingSupplySpeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 740, + "src": "9703:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1115, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9756:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9765:9:1", + "memberName": "borrowAPR", + "nodeType": "MemberAccess", + "referencedDeclaration": 742, + "src": "9756:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1119, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 984, + "src": "9817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1120, + "name": "bulker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "9826:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1117, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "9801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9807:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "9801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9801:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1122, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1070, + "src": "9861:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + } + }, + { + "expression": { + "id": 1123, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9886:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9895:7:1", + "memberName": "earnAPR", + "nodeType": "MemberAccess", + "referencedDeclaration": 748, + "src": "9886:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1125, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9925:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1126, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9934:11:1", + "memberName": "totalBorrow", + "nodeType": "MemberAccess", + "referencedDeclaration": 750, + "src": "9925:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1127, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "9977:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9986:20:1", + "memberName": "totalBorrowPrincipal", + "nodeType": "MemberAccess", + "referencedDeclaration": 752, + "src": "9977:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1129, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10029:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10038:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 754, + "src": "10029:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1131, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10081:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10090:20:1", + "memberName": "totalSupplyPrincipal", + "nodeType": "MemberAccess", + "referencedDeclaration": 756, + "src": "10081:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1133, + "name": "response", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 994, + "src": "10140:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", + "typeString": "struct CometQuery.CometState memory" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10149:18:1", + "memberName": "trackingIndexScale", + "nodeType": "MemberAccess", + "referencedDeclaration": 758, + "src": "10140:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", + "typeString": "struct CometQuery.BaseAssetWithAccountState memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1107, + "name": "CometStateWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "9489:26:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$789_storage_ptr_$", + "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "9526:9:1", + "9556:17:1", + "9611:23:1", + "9678:23:1", + "9745:9:1", + "9784:15:1", + "9843:16:1", + "9877:7:1", + "9912:11:1", + "9955:20:1", + "10016:11:1", + "10059:20:1", + "10120:18:1" + ], + "names": [ + "baseAsset", + "baseMinForRewards", + "baseTrackingBorrowSpeed", + "baseTrackingSupplySpeed", + "borrowAPR", + "bulkerAllowance", + "collateralAssets", + "earnAPR", + "totalBorrow", + "totalBorrowPrincipal", + "totalSupply", + "totalSupplyPrincipal", + "trackingIndexScale" + ], + "nodeType": "FunctionCall", + "src": "9489:687:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + }, + "functionReturnParameters": 991, + "id": 1136, + "nodeType": "Return", + "src": "9476:700:1" + } + ] + }, + "functionSelector": "5346cc19", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queryWithAccount", + "nameLocation": "8165:16:1", + "parameters": { + "id": 987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 982, + "mutability": "mutable", + "name": "comet", + "nameLocation": "8193:5:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8187:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 981, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 980, + "name": "Comet", + "nameLocations": [ + "8187:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "8187:5:1" + }, + "referencedDeclaration": 598, + "src": "8187:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 984, + "mutability": "mutable", + "name": "account", + "nameLocation": "8220:7:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8204:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8204:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "bulker", + "nameLocation": "8249:6:1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8233:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8233:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "8181:78:1" + }, + "returnParameters": { + "id": 991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 990, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "8281:33:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 989, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 988, + "name": "CometStateWithAccountState", + "nameLocations": [ + "8281:26:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "8281:26:1" + }, + "referencedDeclaration": 789, + "src": "8281:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "src": "8280:35:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1203, + "nodeType": "FunctionDefinition", + "src": "10185:782:1", + "body": { + "id": 1202, + "nodeType": "Block", + "src": "10280:687:1", + "statements": [ + { + "assignments": [ + 1153 + ], + "declarations": [ + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "assetInfo", + "nameLocation": "10309:9:1", + "nodeType": "VariableDeclaration", + "scope": 1202, + "src": "10286:32:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo" + }, + "typeName": { + "id": 1152, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1151, + "name": "Comet.AssetInfo", + "nameLocations": [ + "10286:5:1", + "10292:9:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 306, + "src": "10286:15:1" + }, + "referencedDeclaration": 306, + "src": "10286:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", + "typeString": "struct Comet.AssetInfo" + } + }, + "visibility": "internal" + } + ], + "id": 1158, + "initialValue": { + "arguments": [ + { + "id": 1156, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1143, + "src": "10340:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "id": 1154, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10327:12:1", + "memberName": "getAssetInfo", + "nodeType": "MemberAccess", + "referencedDeclaration": 340, + "src": "10321:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", + "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" + } + }, + "id": 1157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10321:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10286:60:1" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1160, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10409:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10419:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10409:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1162, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10452:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10462:22:1", + "memberName": "borrowCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 299, + "src": "10452:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1165, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10510:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10520:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10510:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1164, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10504:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10504:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10527:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 619, + "src": "10504:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10504:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1170, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10574:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10584:25:1", + "memberName": "liquidateCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 301, + "src": "10574:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "expression": { + "id": 1172, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10638:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10648:17:1", + "memberName": "liquidationFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 303, + "src": "10638:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1175, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10687:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10697:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10687:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1174, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10681:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10681:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10704:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "10681:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10681:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1182, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10742:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10752:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 295, + "src": "10742:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1180, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10727:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10733:8:1", + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 367, + "src": "10727:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10727:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1185, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10783:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10793:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 295, + "src": "10783:19:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1187, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10823:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1188, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10833:9:1", + "memberName": "supplyCap", + "nodeType": "MemberAccess", + "referencedDeclaration": 305, + "src": "10823:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "expression": { + "id": 1190, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10876:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10866:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1189, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "10860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10860:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10883:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 629, + "src": "10860:29:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10860:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1197, + "name": "assetInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "10937:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", + "typeString": "struct Comet.AssetInfo memory" + } + }, + "id": 1198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10947:5:1", + "memberName": "asset", + "nodeType": "MemberAccess", + "referencedDeclaration": 293, + "src": "10937:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1195, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "10914:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10920:16:1", + "memberName": "totalsCollateral", + "nodeType": "MemberAccess", + "referencedDeclaration": 588, + "src": "10914:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10914:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1159, + "name": "CollateralAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 702, + "src": "10366:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", + "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10392:15:1", + "10434:16:1", + "10494:8:1", + "10547:25:1", + "10619:17:1", + "10675:4:1", + "10720:5:1", + "10772:9:1", + "10812:9:1", + "10852:6:1", + "10901:11:1" + ], + "names": [ + "collateralAsset", + "collateralFactor", + "decimals", + "liquidateCollateralFactor", + "liquidationFactor", + "name", + "price", + "priceFeed", + "supplyCap", + "symbol", + "totalSupply" + ], + "nodeType": "FunctionCall", + "src": "10366:596:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "functionReturnParameters": 1148, + "id": 1201, + "nodeType": "Return", + "src": "10353:609:1" + } + ] + }, + "functionSelector": "cbe293fa", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "collateralInfo", + "nameLocation": "10194:14:1", + "parameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1141, + "mutability": "mutable", + "name": "comet", + "nameLocation": "10215:5:1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10209:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1139, + "name": "Comet", + "nameLocations": [ + "10209:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "10209:5:1" + }, + "referencedDeclaration": 598, + "src": "10209:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "index", + "nameLocation": "10228:5:1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10222:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1142, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "10222:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "10208:26:1" + }, + "returnParameters": { + "id": 1148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1203, + "src": "10256:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset" + }, + "typeName": { + "id": 1146, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1145, + "name": "CollateralAsset", + "nameLocations": [ + "10256:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "10256:15:1" + }, + "referencedDeclaration": 702, + "src": "10256:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "visibility": "internal" + } + ], + "src": "10255:24:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 1267, + "nodeType": "FunctionDefinition", + "src": "10971:925:1", + "body": { + "id": 1266, + "nodeType": "Block", + "src": "11151:745:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1218, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11229:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11235:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11229:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 1225, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11310:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "id": 1228, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "11327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + ], + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11319:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1226, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11319:7:1", + "typeDescriptions": {} + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11319:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1221, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11283:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11277:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1220, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "11271:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11300:9:1", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 607, + "src": "11271:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11271:63:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1233, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 1234, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11388:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11394:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11388:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1231, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "11353:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11359:19:1", + "memberName": "collateralBalanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 543, + "src": "11353:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", + "typeString": "function (address,address) view external returns (uint128)" + } + }, + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11353:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + { + "expression": { + "id": 1237, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1238, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11444:16:1", + "memberName": "collateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 683, + "src": "11438:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1239, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1240, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11486:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 685, + "src": "11480:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1241, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11531:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11537:25:1", + "memberName": "liquidateCollateralFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 689, + "src": "11531:31:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1243, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11597:17:1", + "memberName": "liquidationFactor", + "nodeType": "MemberAccess", + "referencedDeclaration": 691, + "src": "11591:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1245, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11630:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11636:4:1", + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 687, + "src": "11630:10:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 1247, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11663:5:1", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 693, + "src": "11657:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1249, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11689:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11695:9:1", + "memberName": "priceFeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 695, + "src": "11689:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1251, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11725:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1252, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11731:9:1", + "memberName": "supplyCap", + "nodeType": "MemberAccess", + "referencedDeclaration": 697, + "src": "11725:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1253, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11758:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11764:6:1", + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 699, + "src": "11758:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 1255, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11793:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1256, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11799:11:1", + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 701, + "src": "11793:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 1262, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1211, + "src": "11874:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1258, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1209, + "src": "11841:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset memory" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11847:15:1", + "memberName": "collateralAsset", + "nodeType": "MemberAccess", + "referencedDeclaration": 681, + "src": "11841:21:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1257, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "11835:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$630", + "typeString": "contract ERC20" + } + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11864:9:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 614, + "src": "11835:38:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11835:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1217, + "name": "CollateralAssetWithAccountState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "11170:31:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", + "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "11212:15:1", + "11260:9:1", + "11344:7:1", + "11420:16:1", + "11470:8:1", + "11504:25:1", + "11572:17:1", + "11624:4:1", + "11650:5:1", + "11678:9:1", + "11714:9:1", + "11750:6:1", + "11780:11:1", + "11820:13:1" + ], + "names": [ + "collateralAsset", + "allowance", + "balance", + "collateralFactor", + "decimals", + "liquidateCollateralFactor", + "liquidationFactor", + "name", + "price", + "priceFeed", + "supplyCap", + "symbol", + "totalSupply", + "walletBalance" + ], + "nodeType": "FunctionCall", + "src": "11170:721:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" + } + }, + "functionReturnParameters": 1216, + "id": 1265, + "nodeType": "Return", + "src": "11157:734:1" + } + ] + }, + "functionSelector": "c2815c0b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "collateralInfoWithAccount", + "nameLocation": "10980:25:1", + "parameters": { + "id": 1212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1206, + "mutability": "mutable", + "name": "comet", + "nameLocation": "11017:5:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11011:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1205, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1204, + "name": "Comet", + "nameLocations": [ + "11011:5:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "11011:5:1" + }, + "referencedDeclaration": 598, + "src": "11011:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1209, + "mutability": "mutable", + "name": "asset", + "nameLocation": "11051:5:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11028:28:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", + "typeString": "struct CometQuery.CollateralAsset" + }, + "typeName": { + "id": 1208, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1207, + "name": "CollateralAsset", + "nameLocations": [ + "11028:15:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 702, + "src": "11028:15:1" + }, + "referencedDeclaration": 702, + "src": "11028:15:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", + "typeString": "struct CometQuery.CollateralAsset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1211, + "mutability": "mutable", + "name": "account", + "nameLocation": "11078:7:1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11062:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11062:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "11005:84:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1267, + "src": "11111:38:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + }, + "typeName": { + "id": 1214, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1213, + "name": "CollateralAssetWithAccountState", + "nameLocations": [ + "11111:31:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 731, + "src": "11111:31:1" + }, + "referencedDeclaration": 731, + "src": "11111:31:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", + "typeString": "struct CometQuery.CollateralAssetWithAccountState" + } + }, + "visibility": "internal" + } + ], + "src": "11110:40:1" + }, + "scope": 1268, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CometQuery", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1268 + ], + "name": "CometQuery", + "nameLocation": "4161:10:1", + "scope": 1269, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 1 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json index db79679..83ed447 100644 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json @@ -183,6 +183,19 @@ ], "stateMutability": "nonpayable", "type": "function" + }, + { + "inputs": [], + "name": "underlying", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" } ], "bytecode": { @@ -204,9 +217,10 @@ "comptroller()": "5fe3b567", "exchangeRateCurrent()": "bd6d894d", "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" + "transferFrom(address,address,uint256)": "23b872dd", + "underlying()": "6f307dc3" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfUnderlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRateCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfUnderlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRateCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -397,6 +411,19 @@ "type": "bool" } ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "underlying", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] } ], "devdoc": { @@ -422,14 +449,23 @@ "compilationTarget": { "Sleuth/CompoundV2Query.sol": "CToken" }, - "libraries": {} + "libraries": {}, + "viaIR": true }, "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + }, "Sleuth/CompoundV2Query.sol": { - "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", "urls": [ - "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", - "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", + "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" ], "license": "UNLICENSED" } @@ -438,28 +474,37 @@ }, "ast": { "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 309, + "id": 1625, "exportedSymbols": { "CToken": [ - 72 + 1347 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 ], "CompoundV2Query": [ - 308 + 1624 ], "Comptroller": [ - 148 + 1423 + ], + "ERC20": [ + 630 ], "PriceOracle": [ - 157 + 1431 ] }, "nodeType": "SourceUnit", - "src": "39:2941:0", + "src": "39:3525:2", "nodes": [ { - "id": 1, + "id": 1270, "nodeType": "PragmaDirective", - "src": "39:24:0", + "src": "39:24:2", "literals": [ "solidity", "^", @@ -468,98 +513,110 @@ ] }, { - "id": 72, + "id": 1271, + "nodeType": "ImportDirective", + "src": "65:26:2", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 1625, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 1347, "nodeType": "ContractDefinition", - "src": "65:670:0", + "src": "93:723:2", "nodes": [ { - "id": 7, + "id": 1277, "nodeType": "FunctionDefinition", - "src": "86:54:0", + "src": "114:54:2", "functionSelector": "5fe3b567", "implemented": false, "kind": "function", "modifiers": [], "name": "comptroller", - "nameLocation": "95:11:0", + "nameLocation": "123:11:2", "parameters": { - "id": 2, + "id": 1272, "nodeType": "ParameterList", "parameters": [], - "src": "106:2:0" + "src": "134:2:2" }, "returnParameters": { - "id": 6, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5, + "id": 1275, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 7, - "src": "127:11:0", + "scope": 1277, + "src": "155:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 4, + "id": 1274, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3, + "id": 1273, "name": "Comptroller", "nameLocations": [ - "127:11:0" + "155:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "127:11:0" + "referencedDeclaration": 1423, + "src": "155:11:2" }, - "referencedDeclaration": 148, - "src": "127:11:0", + "referencedDeclaration": 1423, + "src": "155:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, "visibility": "internal" } ], - "src": "126:13:0" + "src": "154:13:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 16, + "id": 1286, "nodeType": "FunctionDefinition", - "src": "144:68:0", + "src": "172:68:2", "functionSelector": "a9059cbb", "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "153:8:0", + "nameLocation": "181:8:2", "parameters": { - "id": 12, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9, + "id": 1279, "mutability": "mutable", "name": "dst", - "nameLocation": "170:3:0", + "nameLocation": "198:3:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "162:11:0", + "scope": 1286, + "src": "190:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -567,10 +624,10 @@ "typeString": "address" }, "typeName": { - "id": 8, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", - "src": "162:7:0", + "src": "190:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -581,13 +638,13 @@ }, { "constant": false, - "id": 11, + "id": 1281, "mutability": "mutable", "name": "amount", - "nameLocation": "180:6:0", + "nameLocation": "208:6:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "175:11:0", + "scope": 1286, + "src": "203:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -595,10 +652,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10, + "id": 1280, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "175:4:0", + "src": "203:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -607,21 +664,21 @@ "visibility": "internal" } ], - "src": "161:26:0" + "src": "189:26:2" }, "returnParameters": { - "id": 15, + "id": 1285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 14, + "id": 1284, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "206:4:0", + "scope": 1286, + "src": "234:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -629,10 +686,10 @@ "typeString": "bool" }, "typeName": { - "id": 13, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "206:4:0", + "src": "234:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -641,36 +698,36 @@ "visibility": "internal" } ], - "src": "205:6:0" + "src": "233:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27, + "id": 1297, "nodeType": "FunctionDefinition", - "src": "216:85:0", + "src": "244:85:2", "functionSelector": "23b872dd", "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "225:12:0", + "nameLocation": "253:12:2", "parameters": { - "id": 23, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 1288, "mutability": "mutable", "name": "src", - "nameLocation": "246:3:0", + "nameLocation": "274:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "238:11:0", + "scope": 1297, + "src": "266:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -678,10 +735,10 @@ "typeString": "address" }, "typeName": { - "id": 17, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:0", + "src": "266:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -692,13 +749,13 @@ }, { "constant": false, - "id": 20, + "id": 1290, "mutability": "mutable", "name": "dst", - "nameLocation": "259:3:0", + "nameLocation": "287:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "251:11:0", + "scope": 1297, + "src": "279:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -706,10 +763,10 @@ "typeString": "address" }, "typeName": { - "id": 19, + "id": 1289, "name": "address", "nodeType": "ElementaryTypeName", - "src": "251:7:0", + "src": "279:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -720,13 +777,13 @@ }, { "constant": false, - "id": 22, + "id": 1292, "mutability": "mutable", "name": "amount", - "nameLocation": "269:6:0", + "nameLocation": "297:6:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "264:11:0", + "scope": 1297, + "src": "292:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -734,10 +791,10 @@ "typeString": "uint256" }, "typeName": { - "id": 21, + "id": 1291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "264:4:0", + "src": "292:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -746,21 +803,21 @@ "visibility": "internal" } ], - "src": "237:39:0" + "src": "265:39:2" }, "returnParameters": { - "id": 26, + "id": 1296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 1295, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "295:4:0", + "scope": 1297, + "src": "323:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +825,10 @@ "typeString": "bool" }, "typeName": { - "id": 24, + "id": 1294, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "295:4:0", + "src": "323:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -780,36 +837,36 @@ "visibility": "internal" } ], - "src": "294:6:0" + "src": "322:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 36, + "id": 1306, "nodeType": "FunctionDefinition", - "src": "305:71:0", + "src": "333:71:2", "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "314:7:0", + "nameLocation": "342:7:2", "parameters": { - "id": 32, + "id": 1302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 1299, "mutability": "mutable", "name": "spender", - "nameLocation": "330:7:0", + "nameLocation": "358:7:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "322:15:0", + "scope": 1306, + "src": "350:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -817,10 +874,10 @@ "typeString": "address" }, "typeName": { - "id": 28, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", - "src": "322:7:0", + "src": "350:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -831,13 +888,13 @@ }, { "constant": false, - "id": 31, + "id": 1301, "mutability": "mutable", "name": "amount", - "nameLocation": "344:6:0", + "nameLocation": "372:6:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "339:11:0", + "scope": 1306, + "src": "367:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -845,10 +902,10 @@ "typeString": "uint256" }, "typeName": { - "id": 30, + "id": 1300, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "339:4:0", + "src": "367:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -857,21 +914,21 @@ "visibility": "internal" } ], - "src": "321:30:0" + "src": "349:30:2" }, "returnParameters": { - "id": 35, + "id": 1305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34, + "id": 1304, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "370:4:0", + "scope": 1306, + "src": "398:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -879,10 +936,10 @@ "typeString": "bool" }, "typeName": { - "id": 33, + "id": 1303, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "370:4:0", + "src": "398:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -891,36 +948,36 @@ "visibility": "internal" } ], - "src": "369:6:0" + "src": "397:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45, + "id": 1315, "nodeType": "FunctionDefinition", - "src": "380:80:0", + "src": "408:80:2", "functionSelector": "dd62ed3e", "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", - "nameLocation": "389:9:0", + "nameLocation": "417:9:2", "parameters": { - "id": 41, + "id": 1311, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38, + "id": 1308, "mutability": "mutable", "name": "owner", - "nameLocation": "407:5:0", + "nameLocation": "435:5:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "399:13:0", + "scope": 1315, + "src": "427:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -928,10 +985,10 @@ "typeString": "address" }, "typeName": { - "id": 37, + "id": 1307, "name": "address", "nodeType": "ElementaryTypeName", - "src": "399:7:0", + "src": "427:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -942,13 +999,13 @@ }, { "constant": false, - "id": 40, + "id": 1310, "mutability": "mutable", "name": "spender", - "nameLocation": "422:7:0", + "nameLocation": "450:7:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "414:15:0", + "scope": 1315, + "src": "442:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -956,10 +1013,10 @@ "typeString": "address" }, "typeName": { - "id": 39, + "id": 1309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "414:7:0", + "src": "442:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -969,21 +1026,21 @@ "visibility": "internal" } ], - "src": "398:32:0" + "src": "426:32:2" }, "returnParameters": { - "id": 44, + "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 1313, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "454:4:0", + "scope": 1315, + "src": "482:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -991,10 +1048,10 @@ "typeString": "uint256" }, "typeName": { - "id": 42, + "id": 1312, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "454:4:0", + "src": "482:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1003,36 +1060,36 @@ "visibility": "internal" } ], - "src": "453:6:0" + "src": "481:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 52, + "id": 1322, "nodeType": "FunctionDefinition", - "src": "464:63:0", + "src": "492:63:2", "functionSelector": "70a08231", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "473:9:0", + "nameLocation": "501:9:2", "parameters": { - "id": 48, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 47, + "id": 1317, "mutability": "mutable", "name": "owner", - "nameLocation": "491:5:0", + "nameLocation": "519:5:2", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "483:13:0", + "scope": 1322, + "src": "511:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1040,10 +1097,10 @@ "typeString": "address" }, "typeName": { - "id": 46, + "id": 1316, "name": "address", "nodeType": "ElementaryTypeName", - "src": "483:7:0", + "src": "511:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1053,21 +1110,21 @@ "visibility": "internal" } ], - "src": "482:15:0" + "src": "510:15:2" }, "returnParameters": { - "id": 51, + "id": 1321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 50, + "id": 1320, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "521:4:0", + "scope": 1322, + "src": "549:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1075,10 +1132,10 @@ "typeString": "uint256" }, "typeName": { - "id": 49, + "id": 1319, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "521:4:0", + "src": "549:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1087,36 +1144,36 @@ "visibility": "internal" } ], - "src": "520:6:0" + "src": "548:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59, + "id": 1329, "nodeType": "FunctionDefinition", - "src": "531:68:0", + "src": "559:68:2", "functionSelector": "3af9e669", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOfUnderlying", - "nameLocation": "540:19:0", + "nameLocation": "568:19:2", "parameters": { - "id": 55, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54, + "id": 1324, "mutability": "mutable", "name": "owner", - "nameLocation": "568:5:0", + "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "560:13:0", + "scope": 1329, + "src": "588:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1124,10 +1181,10 @@ "typeString": "address" }, "typeName": { - "id": 53, + "id": 1323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "560:7:0", + "src": "588:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1137,21 +1194,21 @@ "visibility": "internal" } ], - "src": "559:15:0" + "src": "587:15:2" }, "returnParameters": { - "id": 58, + "id": 1328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 57, + "id": 1327, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "593:4:0", + "scope": 1329, + "src": "621:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1159,10 +1216,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 1326, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "593:4:0", + "src": "621:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1171,36 +1228,36 @@ "visibility": "internal" } ], - "src": "592:6:0" + "src": "620:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 66, + "id": 1336, "nodeType": "FunctionDefinition", - "src": "603:71:0", + "src": "631:71:2", "functionSelector": "17bfdfbc", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowBalanceCurrent", - "nameLocation": "612:20:0", + "nameLocation": "640:20:2", "parameters": { - "id": 62, + "id": 1332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 61, + "id": 1331, "mutability": "mutable", "name": "account", - "nameLocation": "641:7:0", + "nameLocation": "669:7:2", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "633:15:0", + "scope": 1336, + "src": "661:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1208,10 +1265,10 @@ "typeString": "address" }, "typeName": { - "id": 60, + "id": 1330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "633:7:0", + "src": "661:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1221,21 +1278,21 @@ "visibility": "internal" } ], - "src": "632:17:0" + "src": "660:17:2" }, "returnParameters": { - "id": 65, + "id": 1335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 64, + "id": 1334, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "668:4:0", + "scope": 1336, + "src": "696:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1243,10 +1300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 63, + "id": 1333, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "668:4:0", + "src": "696:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1255,42 +1312,42 @@ "visibility": "internal" } ], - "src": "667:6:0" + "src": "695:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 71, + "id": 1341, "nodeType": "FunctionDefinition", - "src": "678:55:0", + "src": "706:55:2", "functionSelector": "bd6d894d", "implemented": false, "kind": "function", "modifiers": [], "name": "exchangeRateCurrent", - "nameLocation": "687:19:0", + "nameLocation": "715:19:2", "parameters": { - "id": 67, + "id": 1337, "nodeType": "ParameterList", "parameters": [], - "src": "706:2:0" + "src": "734:2:2" }, "returnParameters": { - "id": 70, + "id": 1340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 69, + "id": 1339, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 71, - "src": "727:4:0", + "scope": 1341, + "src": "755:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1298,10 +1355,10 @@ "typeString": "uint256" }, "typeName": { - "id": 68, + "id": 1338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "727:4:0", + "src": "755:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1310,9 +1367,65 @@ "visibility": "internal" } ], - "src": "726:6:0" + "src": "754:6:2" + }, + "scope": 1347, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 1346, + "nodeType": "FunctionDefinition", + "src": "765:49:2", + "functionSelector": "6f307dc3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "underlying", + "nameLocation": "774:10:2", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [], + "src": "784:2:2" + }, + "returnParameters": { + "id": 1345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "805:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "804:9:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -1325,41 +1438,41 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 72 + 1347 ], "name": "CToken", - "nameLocation": "75:6:0", - "scope": 309, + "nameLocation": "103:6:2", + "scope": 1625, "usedErrors": [] }, { - "id": 148, + "id": 1423, "nodeType": "ContractDefinition", - "src": "737:668:0", + "src": "818:668:2", "nodes": [ { - "id": 81, + "id": 1356, "nodeType": "FunctionDefinition", - "src": "763:61:0", + "src": "844:61:2", "functionSelector": "8e8f294b", "implemented": false, "kind": "function", "modifiers": [], "name": "markets", - "nameLocation": "772:7:0", + "nameLocation": "853:7:2", "parameters": { - "id": 75, + "id": 1350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 74, + "id": 1349, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "780:7:0", + "scope": 1356, + "src": "861:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1367,10 +1480,10 @@ "typeString": "address" }, "typeName": { - "id": 73, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", - "src": "780:7:0", + "src": "861:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1380,21 +1493,21 @@ "visibility": "internal" } ], - "src": "779:9:0" + "src": "860:9:2" }, "returnParameters": { - "id": 80, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 77, + "id": 1352, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "812:4:0", + "scope": 1356, + "src": "893:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1402,10 +1515,10 @@ "typeString": "bool" }, "typeName": { - "id": 76, + "id": 1351, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "812:4:0", + "src": "893:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1415,13 +1528,13 @@ }, { "constant": false, - "id": 79, + "id": 1354, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "818:4:0", + "scope": 1356, + "src": "899:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1429,10 +1542,10 @@ "typeString": "uint256" }, "typeName": { - "id": 78, + "id": 1353, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:0", + "src": "899:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1441,101 +1554,101 @@ "visibility": "internal" } ], - "src": "811:12:0" + "src": "892:12:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 87, + "id": 1362, "nodeType": "FunctionDefinition", - "src": "828:54:0", + "src": "909:54:2", "functionSelector": "7dc0d1d0", "implemented": false, "kind": "function", "modifiers": [], "name": "oracle", - "nameLocation": "837:6:0", + "nameLocation": "918:6:2", "parameters": { - "id": 82, + "id": 1357, "nodeType": "ParameterList", "parameters": [], - "src": "843:2:0" + "src": "924:2:2" }, "returnParameters": { - "id": 86, + "id": 1361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 85, + "id": 1360, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 87, - "src": "869:11:0", + "scope": 1362, + "src": "950:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 84, + "id": 1359, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 83, + "id": 1358, "name": "PriceOracle", "nameLocations": [ - "869:11:0" + "950:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "869:11:0" + "referencedDeclaration": 1431, + "src": "950:11:2" }, - "referencedDeclaration": 157, - "src": "869:11:0", + "referencedDeclaration": 1431, + "src": "950:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "src": "868:13:0" + "src": "949:13:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 98, + "id": 1373, "nodeType": "FunctionDefinition", - "src": "886:79:0", + "src": "967:79:2", "functionSelector": "5ec88c79", "implemented": false, "kind": "function", "modifiers": [], "name": "getAccountLiquidity", - "nameLocation": "895:19:0", + "nameLocation": "976:19:2", "parameters": { - "id": 90, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 89, + "id": 1364, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "915:7:0", + "scope": 1373, + "src": "996:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1543,10 +1656,10 @@ "typeString": "address" }, "typeName": { - "id": 88, + "id": 1363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "915:7:0", + "src": "996:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1556,21 +1669,21 @@ "visibility": "internal" } ], - "src": "914:9:0" + "src": "995:9:2" }, "returnParameters": { - "id": 97, + "id": 1372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 92, + "id": 1367, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "947:4:0", + "scope": 1373, + "src": "1028:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1578,10 +1691,10 @@ "typeString": "uint256" }, "typeName": { - "id": 91, + "id": 1366, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "947:4:0", + "src": "1028:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1591,13 +1704,13 @@ }, { "constant": false, - "id": 94, + "id": 1369, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "953:4:0", + "scope": 1373, + "src": "1034:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1605,10 +1718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 93, + "id": 1368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "953:4:0", + "src": "1034:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1618,13 +1731,13 @@ }, { "constant": false, - "id": 96, + "id": 1371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "959:4:0", + "scope": 1373, + "src": "1040:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1632,10 +1745,10 @@ "typeString": "uint256" }, "typeName": { - "id": 95, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "959:4:0", + "src": "1040:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1644,36 +1757,36 @@ "visibility": "internal" } ], - "src": "946:18:0" + "src": "1027:18:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 107, + "id": 1382, "nodeType": "FunctionDefinition", - "src": "969:70:0", + "src": "1050:70:2", "functionSelector": "abfceffc", "implemented": false, "kind": "function", "modifiers": [], "name": "getAssetsIn", - "nameLocation": "978:11:0", + "nameLocation": "1059:11:2", "parameters": { - "id": 101, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 1375, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "990:7:0", + "scope": 1382, + "src": "1071:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1681,10 +1794,10 @@ "typeString": "address" }, "typeName": { - "id": 99, + "id": 1374, "name": "address", "nodeType": "ElementaryTypeName", - "src": "990:7:0", + "src": "1071:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1694,89 +1807,89 @@ "visibility": "internal" } ], - "src": "989:9:0" + "src": "1070:9:2" }, "returnParameters": { - "id": 106, + "id": 1381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 105, + "id": 1380, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "1022:15:0", + "scope": 1382, + "src": "1103:15:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", "typeString": "contract CToken[]" }, "typeName": { "baseType": { - "id": 103, + "id": 1378, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 102, + "id": 1377, "name": "CToken", "nameLocations": [ - "1022:6:0" + "1103:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1022:6:0" + "referencedDeclaration": 1347, + "src": "1103:6:2" }, - "referencedDeclaration": 72, - "src": "1022:6:0", + "referencedDeclaration": 1347, + "src": "1103:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 104, + "id": 1379, "nodeType": "ArrayTypeName", - "src": "1022:8:0", + "src": "1103:8:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", "typeString": "contract CToken[]" } }, "visibility": "internal" } ], - "src": "1021:17:0" + "src": "1102:17:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 112, + "id": 1387, "nodeType": "FunctionDefinition", - "src": "1043:37:0", + "src": "1124:37:2", "functionSelector": "e9af0292", "implemented": false, "kind": "function", "modifiers": [], "name": "claimComp", - "nameLocation": "1052:9:0", + "nameLocation": "1133:9:2", "parameters": { - "id": 110, + "id": 1385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 109, + "id": 1384, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1062:7:0", + "scope": 1387, + "src": "1143:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1784,10 +1897,10 @@ "typeString": "address" }, "typeName": { - "id": 108, + "id": 1383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1062:7:0", + "src": "1143:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1797,42 +1910,42 @@ "visibility": "internal" } ], - "src": "1061:9:0" + "src": "1142:9:2" }, "returnParameters": { - "id": 111, + "id": 1386, "nodeType": "ParameterList", "parameters": [], - "src": "1079:0:0" + "src": "1160:0:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 119, + "id": 1394, "nodeType": "FunctionDefinition", - "src": "1084:59:0", + "src": "1165:59:2", "functionSelector": "cc7ebdc4", "implemented": false, "kind": "function", "modifiers": [], "name": "compAccrued", - "nameLocation": "1093:11:0", + "nameLocation": "1174:11:2", "parameters": { - "id": 115, + "id": 1390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 114, + "id": 1389, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1105:7:0", + "scope": 1394, + "src": "1186:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1840,10 +1953,10 @@ "typeString": "address" }, "typeName": { - "id": 113, + "id": 1388, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1105:7:0", + "src": "1186:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1853,21 +1966,21 @@ "visibility": "internal" } ], - "src": "1104:9:0" + "src": "1185:9:2" }, "returnParameters": { - "id": 118, + "id": 1393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 117, + "id": 1392, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1137:4:0", + "scope": 1394, + "src": "1218:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1875,10 +1988,10 @@ "typeString": "uint256" }, "typeName": { - "id": 116, + "id": 1391, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:0", + "src": "1218:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1887,36 +2000,36 @@ "visibility": "internal" } ], - "src": "1136:6:0" + "src": "1217:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 126, + "id": 1401, "nodeType": "FunctionDefinition", - "src": "1147:58:0", + "src": "1228:58:2", "functionSelector": "1d7b33d7", "implemented": false, "kind": "function", "modifiers": [], "name": "compSpeeds", - "nameLocation": "1156:10:0", + "nameLocation": "1237:10:2", "parameters": { - "id": 122, + "id": 1397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 121, + "id": 1396, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1167:7:0", + "scope": 1401, + "src": "1248:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1924,10 +2037,10 @@ "typeString": "address" }, "typeName": { - "id": 120, + "id": 1395, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1167:7:0", + "src": "1248:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1937,21 +2050,21 @@ "visibility": "internal" } ], - "src": "1166:9:0" + "src": "1247:9:2" }, "returnParameters": { - "id": 125, + "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 1399, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1199:4:0", + "scope": 1401, + "src": "1280:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1959,10 +2072,10 @@ "typeString": "uint256" }, "typeName": { - "id": 123, + "id": 1398, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1199:4:0", + "src": "1280:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1971,36 +2084,36 @@ "visibility": "internal" } ], - "src": "1198:6:0" + "src": "1279:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 133, + "id": 1408, "nodeType": "FunctionDefinition", - "src": "1209:64:0", + "src": "1290:64:2", "functionSelector": "6aa875b5", "implemented": false, "kind": "function", "modifiers": [], "name": "compSupplySpeeds", - "nameLocation": "1218:16:0", + "nameLocation": "1299:16:2", "parameters": { - "id": 129, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 128, + "id": 1403, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1235:7:0", + "scope": 1408, + "src": "1316:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2008,10 +2121,10 @@ "typeString": "address" }, "typeName": { - "id": 127, + "id": 1402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1235:7:0", + "src": "1316:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2021,21 +2134,21 @@ "visibility": "internal" } ], - "src": "1234:9:0" + "src": "1315:9:2" }, "returnParameters": { - "id": 132, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 131, + "id": 1406, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1267:4:0", + "scope": 1408, + "src": "1348:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2043,10 +2156,10 @@ "typeString": "uint256" }, "typeName": { - "id": 130, + "id": 1405, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1267:4:0", + "src": "1348:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2055,36 +2168,36 @@ "visibility": "internal" } ], - "src": "1266:6:0" + "src": "1347:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 140, + "id": 1415, "nodeType": "FunctionDefinition", - "src": "1277:64:0", + "src": "1358:64:2", "functionSelector": "f4a433c0", "implemented": false, "kind": "function", "modifiers": [], "name": "compBorrowSpeeds", - "nameLocation": "1286:16:0", + "nameLocation": "1367:16:2", "parameters": { - "id": 136, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 135, + "id": 1410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1303:7:0", + "scope": 1415, + "src": "1384:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2092,10 +2205,10 @@ "typeString": "address" }, "typeName": { - "id": 134, + "id": 1409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1303:7:0", + "src": "1384:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2105,21 +2218,21 @@ "visibility": "internal" } ], - "src": "1302:9:0" + "src": "1383:9:2" }, "returnParameters": { - "id": 139, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 138, + "id": 1413, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1335:4:0", + "scope": 1415, + "src": "1416:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2127,10 +2240,10 @@ "typeString": "uint256" }, "typeName": { - "id": 137, + "id": 1412, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1335:4:0", + "src": "1416:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2139,36 +2252,36 @@ "visibility": "internal" } ], - "src": "1334:6:0" + "src": "1415:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 147, + "id": 1422, "nodeType": "FunctionDefinition", - "src": "1345:58:0", + "src": "1426:58:2", "functionSelector": "4a584432", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowCaps", - "nameLocation": "1354:10:0", + "nameLocation": "1435:10:2", "parameters": { - "id": 143, + "id": 1418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 142, + "id": 1417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1365:7:0", + "scope": 1422, + "src": "1446:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2176,10 +2289,10 @@ "typeString": "address" }, "typeName": { - "id": 141, + "id": 1416, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1365:7:0", + "src": "1446:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2189,21 +2302,21 @@ "visibility": "internal" } ], - "src": "1364:9:0" + "src": "1445:9:2" }, "returnParameters": { - "id": 146, + "id": 1421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 1420, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1397:4:0", + "scope": 1422, + "src": "1478:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2211,10 +2324,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 1419, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1397:4:0", + "src": "1478:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2223,9 +2336,9 @@ "visibility": "internal" } ], - "src": "1396:6:0" + "src": "1477:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2238,85 +2351,75 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 148 + 1423 ], "name": "Comptroller", - "nameLocation": "747:11:0", - "scope": 309, + "nameLocation": "828:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 157, + "id": 1431, "nodeType": "ContractDefinition", - "src": "1407:100:0", + "src": "1488:93:2", "nodes": [ { - "id": 156, + "id": 1430, "nodeType": "FunctionDefinition", - "src": "1433:72:0", - "functionSelector": "fc57d4df", + "src": "1514:65:2", + "functionSelector": "fe2c6198", "implemented": false, "kind": "function", "modifiers": [], - "name": "getUnderlyingPrice", - "nameLocation": "1442:18:0", + "name": "price", + "nameLocation": "1523:5:2", "parameters": { - "id": 152, + "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, + "id": 1425, "mutability": "mutable", - "name": "cToken", - "nameLocation": "1468:6:0", + "name": "price", + "nameLocation": "1543:5:2", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1461:13:0", + "scope": 1430, + "src": "1529:19:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 150, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 149, - "name": "CToken", - "nameLocations": [ - "1461:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1461:6:0" - }, - "referencedDeclaration": 72, - "src": "1461:6:0", + "id": 1424, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1529:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "1460:15:0" + "src": "1528:21:2" }, "returnParameters": { - "id": 155, + "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 154, + "id": 1428, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1499:4:0", + "scope": 1430, + "src": "1573:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2324,10 +2427,10 @@ "typeString": "uint256" }, "typeName": { - "id": 153, + "id": 1427, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1499:4:0", + "src": "1573:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2336,9 +2439,9 @@ "visibility": "internal" } ], - "src": "1498:6:0" + "src": "1572:6:2" }, - "scope": 157, + "scope": 1431, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2351,33 +2454,33 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 157 + 1431 ], "name": "PriceOracle", - "nameLocation": "1417:11:0", - "scope": 309, + "nameLocation": "1498:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 308, + "id": 1624, "nodeType": "ContractDefinition", - "src": "1509:1470:0", + "src": "1583:1980:2", "nodes": [ { - "id": 174, + "id": 1450, "nodeType": "StructDefinition", - "src": "1538:203:0", + "src": "1626:203:2", "canonicalName": "CompoundV2Query.CTokenMetadata", "members": [ { "constant": false, - "id": 159, + "id": 1435, "mutability": "mutable", "name": "cToken", - "nameLocation": "1574:6:0", + "nameLocation": "1662:6:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1566:14:0", + "scope": 1450, + "src": "1654:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2385,10 +2488,10 @@ "typeString": "address" }, "typeName": { - "id": 158, + "id": 1434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1566:7:0", + "src": "1654:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2399,13 +2502,13 @@ }, { "constant": false, - "id": 161, + "id": 1437, "mutability": "mutable", "name": "allowance", - "nameLocation": "1591:9:0", + "nameLocation": "1679:9:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1586:14:0", + "scope": 1450, + "src": "1674:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2413,10 +2516,10 @@ "typeString": "uint256" }, "typeName": { - "id": 160, + "id": 1436, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1586:4:0", + "src": "1674:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2426,13 +2529,13 @@ }, { "constant": false, - "id": 163, + "id": 1439, "mutability": "mutable", "name": "balance", - "nameLocation": "1611:7:0", + "nameLocation": "1699:7:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1606:12:0", + "scope": 1450, + "src": "1694:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2440,10 +2543,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 1438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1606:4:0", + "src": "1694:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2453,13 +2556,13 @@ }, { "constant": false, - "id": 165, + "id": 1441, "mutability": "mutable", "name": "balanceUnderlying", - "nameLocation": "1629:17:0", + "nameLocation": "1717:17:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1624:22:0", + "scope": 1450, + "src": "1712:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2467,10 +2570,10 @@ "typeString": "uint256" }, "typeName": { - "id": 164, + "id": 1440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1624:4:0", + "src": "1712:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2480,13 +2583,13 @@ }, { "constant": false, - "id": 167, + "id": 1443, "mutability": "mutable", "name": "borrowBalance", - "nameLocation": "1657:13:0", + "nameLocation": "1745:13:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1652:18:0", + "scope": 1450, + "src": "1740:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2494,10 +2597,10 @@ "typeString": "uint256" }, "typeName": { - "id": 166, + "id": 1442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1652:4:0", + "src": "1740:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2507,13 +2610,13 @@ }, { "constant": false, - "id": 169, + "id": 1445, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "1681:16:0", + "nameLocation": "1769:16:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1676:21:0", + "scope": 1450, + "src": "1764:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2521,10 +2624,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 1444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1676:4:0", + "src": "1764:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2534,13 +2637,13 @@ }, { "constant": false, - "id": 171, + "id": 1447, "mutability": "mutable", "name": "exchangeRate", - "nameLocation": "1708:12:0", + "nameLocation": "1796:12:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1703:17:0", + "scope": 1450, + "src": "1791:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2548,10 +2651,10 @@ "typeString": "uint256" }, "typeName": { - "id": 170, + "id": 1446, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1703:4:0", + "src": "1791:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2561,13 +2664,13 @@ }, { "constant": false, - "id": 173, + "id": 1449, "mutability": "mutable", "name": "price", - "nameLocation": "1731:5:0", + "nameLocation": "1819:5:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1726:10:0", + "scope": 1450, + "src": "1814:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2575,10 +2678,10 @@ "typeString": "uint256" }, "typeName": { - "id": 172, + "id": 1448, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1726:4:0", + "src": "1814:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2588,95 +2691,293 @@ } ], "name": "CTokenMetadata", - "nameLocation": "1545:14:0", - "scope": 308, + "nameLocation": "1633:14:2", + "scope": 1624, "visibility": "public" }, { - "id": 245, + "id": 1460, + "nodeType": "StructDefinition", + "src": "1833:124:2", + "canonicalName": "CompoundV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1865:15:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1860:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1860:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1456, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1903:6:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1886:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 1454, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1453, + "name": "CTokenMetadata", + "nameLocations": [ + "1886:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1450, + "src": "1886:14:2" + }, + "referencedDeclaration": 1450, + "src": "1886:14:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 1455, + "nodeType": "ArrayTypeName", + "src": "1886:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1942:10:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1915:37:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 1458, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1457, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1915:26:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1915:26:2" + }, + "referencedDeclaration": 789, + "src": "1915:26:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1840:13:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1466, + "nodeType": "StructDefinition", + "src": "1961:75:2", + "canonicalName": "CompoundV2Query.CTokenRequest", + "members": [ + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1995:6:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "1988:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1461, + "name": "CToken", + "nameLocations": [ + "1988:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1988:6:2" + }, + "referencedDeclaration": 1347, + "src": "1988:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "priceOracleSymbol", + "nameLocation": "2014:17:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2007:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1464, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2007:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenRequest", + "nameLocation": "1968:13:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1554, "nodeType": "FunctionDefinition", - "src": "1745:499:0", + "src": "2040:713:2", "body": { - "id": 244, + "id": 1553, "nodeType": "Block", - "src": "1925:319:0", + "src": "2251:502:2", "statements": [ { "assignments": [ - 194 + 1488 ], "declarations": [ { "constant": false, - "id": 194, + "id": 1488, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "1943:11:0", + "nameLocation": "2269:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1931:23:0", + "scope": 1553, + "src": "2257:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 193, + "id": 1487, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 192, + "id": 1486, "name": "PriceOracle", "nameLocations": [ - "1931:11:0" + "2257:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "1931:11:0" + "referencedDeclaration": 1431, + "src": "2257:11:2" }, - "referencedDeclaration": 157, - "src": "1931:11:0", + "referencedDeclaration": 1431, + "src": "2257:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "id": 198, + "id": 1492, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 195, + "id": 1489, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "1957:11:0", + "referencedDeclaration": 1469, + "src": "2283:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 196, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1969:6:0", + "memberLocation": "2295:6:2", "memberName": "oracle", "nodeType": "MemberAccess", - "referencedDeclaration": 87, - "src": "1957:18:0", + "referencedDeclaration": 1362, + "src": "2283:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", "typeString": "function () view external returns (contract PriceOracle)" } }, - "id": 197, + "id": 1491, "isConstant": false, "isLValue": false, "isPure": false, @@ -2685,30 +2986,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1957:20:0", + "src": "2283:20:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "nodeType": "VariableDeclarationStatement", - "src": "1931:46:0" + "src": "2257:46:2" }, { "assignments": [ - 200 + 1494 ], "declarations": [ { "constant": false, - "id": 200, + "id": 1494, "mutability": "mutable", "name": "cTokenCount", - "nameLocation": "1988:11:0", + "nameLocation": "2314:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1983:16:0", + "scope": 1553, + "src": "2309:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2716,10 +3017,10 @@ "typeString": "uint256" }, "typeName": { - "id": 199, + "id": 1493, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:0", + "src": "2309:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2728,99 +3029,99 @@ "visibility": "internal" } ], - "id": 203, + "id": 1497, "initialValue": { "expression": { - "id": 201, + "id": 1495, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2002:7:0", + "referencedDeclaration": 1476, + "src": "2328:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 202, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2010:6:0", + "memberLocation": "2336:6:2", "memberName": "length", "nodeType": "MemberAccess", - "src": "2002:14:0", + "src": "2328:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1983:33:0" + "src": "2309:33:2" }, { "assignments": [ - 208 + 1502 ], "declarations": [ { "constant": false, - "id": 208, + "id": 1502, "mutability": "mutable", - "name": "res", - "nameLocation": "2046:3:0", + "name": "tokens", + "nameLocation": "2372:6:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2022:27:0", + "scope": 1553, + "src": "2348:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 206, + "id": 1500, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 205, + "id": 1499, "name": "CTokenMetadata", "nameLocations": [ - "2022:14:0" + "2348:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2022:14:0" + "referencedDeclaration": 1450, + "src": "2348:14:2" }, - "referencedDeclaration": 174, - "src": "2022:14:0", + "referencedDeclaration": 1450, + "src": "2348:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 207, + "id": 1501, "nodeType": "ArrayTypeName", - "src": "2022:16:0", + "src": "2348:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, "visibility": "internal" } ], - "id": 215, + "id": 1509, "initialValue": { "arguments": [ { - "id": 213, + "id": 1507, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2073:11:0", + "referencedDeclaration": 1494, + "src": "2402:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2834,48 +3135,48 @@ "typeString": "uint256" } ], - "id": 212, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "2052:20:0", + "src": "2381:20:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 210, + "id": 1504, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 209, + "id": 1503, "name": "CTokenMetadata", "nameLocations": [ - "2056:14:0" + "2385:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2056:14:0" + "referencedDeclaration": 1450, + "src": "2385:14:2" }, - "referencedDeclaration": 174, - "src": "2056:14:0", + "referencedDeclaration": 1450, + "src": "2385:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 211, + "id": 1505, "nodeType": "ArrayTypeName", - "src": "2056:16:0", + "src": "2385:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } } }, - "id": 214, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2884,50 +3185,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2052:33:0", + "src": "2381:33:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2022:63:0" + "src": "2348:66:2" }, { "body": { - "id": 240, + "id": 1534, "nodeType": "Block", - "src": "2130:94:0", + "src": "2459:97:2", "statements": [ { "expression": { - "id": 238, + "id": 1532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 226, - "name": "res", + "id": 1520, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2138:3:0", + "referencedDeclaration": 1502, + "src": "2467:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, - "id": 228, + "id": 1522, "indexExpression": { - "id": 227, + "id": 1521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2142:1:0", + "referencedDeclaration": 1511, + "src": "2474:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2938,9 +3239,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2138:6:0", + "src": "2467:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, @@ -2949,50 +3250,50 @@ "rightHandSide": { "arguments": [ { - "id": 230, + "id": 1524, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2162:11:0", + "referencedDeclaration": 1469, + "src": "2494:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, { - "id": 231, + "id": 1525, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "2175:11:0", + "referencedDeclaration": 1488, + "src": "2507:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, { "baseExpression": { - "id": 232, + "id": 1526, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2188:7:0", + "referencedDeclaration": 1476, + "src": "2520:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 234, + "id": 1528, "indexExpression": { - "id": 233, + "id": 1527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2196:1:0", + "referencedDeclaration": 1511, + "src": "2528:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3003,31 +3304,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2188:10:0", + "src": "2520:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" } }, { - "id": 235, + "id": 1529, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2200:7:0", + "referencedDeclaration": 1478, + "src": "2532:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 236, + "id": 1530, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2209:7:0", + "referencedDeclaration": 1480, + "src": "2541:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3037,16 +3338,16 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" }, { "typeIdentifier": "t_address_payable", @@ -3057,18 +3358,18 @@ "typeString": "address payable" } ], - "id": 229, + "id": 1523, "name": "cTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 307, - "src": "2147:14:0", + "referencedDeclaration": 1623, + "src": "2479:14:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" } }, - "id": 237, + "id": 1531, "isConstant": false, "isLValue": false, "isPure": false, @@ -3077,22 +3378,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2147:70:0", + "src": "2479:70:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "src": "2138:79:0", + "src": "2467:82:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "id": 239, + "id": 1533, "nodeType": "ExpressionStatement", - "src": "2138:79:0" + "src": "2467:82:2" } ] }, @@ -3101,18 +3402,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 222, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 220, + "id": 1514, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2108:1:0", + "referencedDeclaration": 1511, + "src": "2437:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3121,38 +3422,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 221, + "id": 1515, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2112:11:0", + "referencedDeclaration": 1494, + "src": "2441:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2108:15:0", + "src": "2437:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 241, + "id": 1535, "initializationExpression": { "assignments": [ - 217 + 1511 ], "declarations": [ { "constant": false, - "id": 217, + "id": 1511, "mutability": "mutable", "name": "i", - "nameLocation": "2101:1:0", + "nameLocation": "2430:1:2", "nodeType": "VariableDeclaration", - "scope": 241, - "src": "2096:6:0", + "scope": 1535, + "src": "2425:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3160,10 +3461,10 @@ "typeString": "uint256" }, "typeName": { - "id": 216, + "id": 1510, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2096:4:0", + "src": "2425:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3172,17 +3473,17 @@ "visibility": "internal" } ], - "id": 219, + "id": 1513, "initialValue": { "hexValue": "30", - "id": 218, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2105:1:0", + "src": "2434:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3190,11 +3491,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2096:10:0" + "src": "2425:10:2" }, "loopExpression": { "expression": { - "id": 224, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": false, @@ -3202,14 +3503,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2125:3:0", + "src": "2454:3:2", "subExpression": { - "id": 223, + "id": 1517, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2125:1:0", + "referencedDeclaration": 1511, + "src": "2454:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3220,75 +3521,340 @@ "typeString": "uint256" } }, - "id": 225, + "id": 1519, "nodeType": "ExpressionStatement", - "src": "2125:3:0" + "src": "2454:3:2" }, "nodeType": "ForStatement", - "src": "2091:133:0" + "src": "2420:136:2" }, { "expression": { - "id": 242, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2236:3:0", + "arguments": [ + { + "arguments": [ + { + "id": 1539, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2632:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1540, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1480, + "src": "2641:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1537, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2616:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2622:9:2", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2616:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2616:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1542, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "2667:6:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 1544, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2712:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 1545, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2719:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2736:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2728:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2728:8:2", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1543, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2695:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2695:44:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + ], + "id": 1536, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2575:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" + } + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2599:15:2", + "2659:6:2", + "2683:10:2" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState" + ], + "nodeType": "FunctionCall", + "src": "2575:173:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse memory" } }, - "functionReturnParameters": 191, - "id": 243, + "functionReturnParameters": 1485, + "id": 1552, "nodeType": "Return", - "src": "2229:10:0" + "src": "2562:186:2" } ] }, - "functionSelector": "0637ff4b", + "functionSelector": "61d11a6e", "implemented": true, "kind": "function", "modifiers": [], - "name": "query", - "nameLocation": "1754:5:0", + "name": "getMigratorData", + "nameLocation": "2049:15:2", "parameters": { - "id": 186, + "id": 1481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 177, + "id": 1469, "mutability": "mutable", "name": "comptroller", - "nameLocation": "1777:11:0", + "nameLocation": "2082:11:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1765:23:0", + "scope": 1554, + "src": "2070:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 176, + "id": 1468, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 175, + "id": 1467, "name": "Comptroller", "nameLocations": [ - "1765:11:0" + "2070:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "1765:11:0" + "referencedDeclaration": 1423, + "src": "2070:11:2" }, - "referencedDeclaration": 148, - "src": "1765:11:0", + "referencedDeclaration": 1423, + "src": "2070:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -3296,59 +3862,96 @@ }, { "constant": false, - "id": 181, + "id": 1472, + "mutability": "mutable", + "name": "comet", + "nameLocation": "2105:5:2", + "nodeType": "VariableDeclaration", + "scope": 1554, + "src": "2099:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1471, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1470, + "name": "Comet", + "nameLocations": [ + "2099:5:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "2099:5:2" + }, + "referencedDeclaration": 598, + "src": "2099:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1476, "mutability": "mutable", "name": "cTokens", - "nameLocation": "1812:7:0", + "nameLocation": "2141:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1794:25:0", + "scope": 1554, + "src": "2116:32:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" }, "typeName": { "baseType": { - "id": 179, + "id": 1474, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 178, - "name": "CToken", + "id": 1473, + "name": "CTokenRequest", "nameLocations": [ - "1794:6:0" + "2116:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1794:6:0" + "referencedDeclaration": 1466, + "src": "2116:13:2" }, - "referencedDeclaration": 72, - "src": "1794:6:0", + "referencedDeclaration": 1466, + "src": "2116:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, - "id": 180, + "id": 1475, "nodeType": "ArrayTypeName", - "src": "1794:8:0", + "src": "2116:15:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" } }, "visibility": "internal" }, { "constant": false, - "id": 183, + "id": 1478, "mutability": "mutable", "name": "account", - "nameLocation": "1841:7:0", + "nameLocation": "2170:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1825:23:0", + "scope": 1554, + "src": "2154:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3356,10 +3959,10 @@ "typeString": "address payable" }, "typeName": { - "id": 182, + "id": 1477, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1825:15:0", + "src": "2154:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3370,13 +3973,13 @@ }, { "constant": false, - "id": 185, + "id": 1480, "mutability": "mutable", "name": "spender", - "nameLocation": "1870:7:0", + "nameLocation": "2199:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1854:23:0", + "scope": 1554, + "src": "2183:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3384,10 +3987,10 @@ "typeString": "address payable" }, "typeName": { - "id": 184, + "id": 1479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1854:15:0", + "src": "2183:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3397,91 +4000,157 @@ "visibility": "internal" } ], - "src": "1759:122:0" + "src": "2064:146:2" }, "returnParameters": { - "id": 191, + "id": 1485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 190, + "id": 1484, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1900:23:0", + "scope": 1554, + "src": "2229:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" }, "typeName": { - "baseType": { - "id": 188, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 187, - "name": "CTokenMetadata", - "nameLocations": [ - "1900:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "1900:14:0" - }, - "referencedDeclaration": 174, - "src": "1900:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } + "id": 1483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1482, + "name": "QueryResponse", + "nameLocations": [ + "2229:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1460, + "src": "2229:13:2" }, - "id": 189, - "nodeType": "ArrayTypeName", - "src": "1900:16:0", + "referencedDeclaration": 1460, + "src": "2229:13:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" } }, "visibility": "internal" } ], - "src": "1899:25:0" + "src": "2228:22:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 307, + "id": 1623, "nodeType": "FunctionDefinition", - "src": "2248:729:0", + "src": "2757:804:2", "body": { - "id": 306, + "id": 1622, "nodeType": "Block", - "src": "2450:527:0", + "src": "2980:581:2", "statements": [ + { + "assignments": [ + 1575 + ], + "declarations": [ + { + "constant": false, + "id": 1575, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2993:6:2", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "2986:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1574, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1573, + "name": "CToken", + "nameLocations": [ + "2986:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "2986:6:2" + }, + "referencedDeclaration": 1347, + "src": "2986:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "id": 1578, + "initialValue": { + "expression": { + "id": 1576, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3002:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3016:6:2", + "memberName": "cToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1463, + "src": "3002:20:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2986:36:2" + }, { "assignments": [ null, - 265 + 1580 ], "declarations": [ null, { "constant": false, - "id": 265, + "id": 1580, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "2464:16:0", + "nameLocation": "3036:16:2", "nodeType": "VariableDeclaration", - "scope": 306, - "src": "2459:21:0", + "scope": 1622, + "src": "3031:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3489,10 +4158,10 @@ "typeString": "uint256" }, "typeName": { - "id": 264, + "id": 1579, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2459:4:0", + "src": "3031:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3501,20 +4170,20 @@ "visibility": "internal" } ], - "id": 273, + "id": 1588, "initialValue": { "arguments": [ { "arguments": [ { - "id": 270, + "id": 1585, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2512:6:0", + "referencedDeclaration": 1575, + "src": "3084:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3522,30 +4191,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 269, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 268, + "id": 1583, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": {} } }, - "id": 271, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, @@ -3554,7 +4223,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2504:15:0", + "src": "3076:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3570,33 +4239,33 @@ } ], "expression": { - "id": 266, + "id": 1581, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "2484:11:0", + "referencedDeclaration": 1557, + "src": "3056:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 267, + "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2496:7:0", + "memberLocation": "3068:7:2", "memberName": "markets", "nodeType": "MemberAccess", - "referencedDeclaration": 81, - "src": "2484:19:0", + "referencedDeclaration": 1356, + "src": "3056:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", "typeString": "function (address) view external returns (bool,uint256)" } }, - "id": 272, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": false, @@ -3605,7 +4274,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2484:36:0", + "src": "3056:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", @@ -3613,7 +4282,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2456:64:0" + "src": "3028:64:2" }, { "expression": { @@ -3621,14 +4290,14 @@ { "arguments": [ { - "id": 277, + "id": 1592, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2581:6:0", + "referencedDeclaration": 1575, + "src": "3153:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3636,30 +4305,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 276, + "id": 1591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 275, + "id": 1590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": {} } }, - "id": 278, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, @@ -3668,7 +4337,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2573:15:0", + "src": "3145:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3678,24 +4347,24 @@ { "arguments": [ { - "id": 281, + "id": 1596, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2626:7:0", + "referencedDeclaration": 1565, + "src": "3198:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 282, + "id": 1597, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2635:7:0", + "referencedDeclaration": 1567, + "src": "3207:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3714,33 +4383,33 @@ } ], "expression": { - "id": 279, + "id": 1594, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2609:6:0", + "referencedDeclaration": 1575, + "src": "3181:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 280, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2616:9:0", + "memberLocation": "3188:9:2", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2609:16:0", + "referencedDeclaration": 1315, + "src": "3181:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 283, + "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, @@ -3749,7 +4418,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2609:34:0", + "src": "3181:34:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3759,12 +4428,12 @@ { "arguments": [ { - "id": 286, + "id": 1601, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2679:7:0", + "referencedDeclaration": 1565, + "src": "3251:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3779,33 +4448,33 @@ } ], "expression": { - "id": 284, + "id": 1599, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2662:6:0", + "referencedDeclaration": 1575, + "src": "3234:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 285, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2669:9:0", + "memberLocation": "3241:9:2", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "2662:16:0", + "referencedDeclaration": 1322, + "src": "3234:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 287, + "id": 1602, "isConstant": false, "isLValue": false, "isPure": false, @@ -3814,7 +4483,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2662:25:0", + "src": "3234:25:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3824,12 +4493,12 @@ { "arguments": [ { - "id": 290, + "id": 1605, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2743:7:0", + "referencedDeclaration": 1565, + "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3844,33 +4513,33 @@ } ], "expression": { - "id": 288, + "id": 1603, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2716:6:0", + "referencedDeclaration": 1575, + "src": "3288:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 289, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2723:19:0", + "memberLocation": "3295:19:2", "memberName": "balanceOfUnderlying", "nodeType": "MemberAccess", - "referencedDeclaration": 59, - "src": "2716:26:0", + "referencedDeclaration": 1329, + "src": "3288:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 291, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -3879,7 +4548,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2716:35:0", + "src": "3288:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3889,12 +4558,12 @@ { "arguments": [ { - "id": 294, + "id": 1609, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2804:7:0", + "referencedDeclaration": 1565, + "src": "3376:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3909,33 +4578,33 @@ } ], "expression": { - "id": 292, + "id": 1607, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2776:6:0", + "referencedDeclaration": 1575, + "src": "3348:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 293, + "id": 1608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2783:20:0", + "memberLocation": "3355:20:2", "memberName": "borrowBalanceCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 66, - "src": "2776:27:0", + "referencedDeclaration": 1336, + "src": "3348:27:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 295, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": false, @@ -3944,7 +4613,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2776:36:0", + "src": "3348:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3952,12 +4621,12 @@ } }, { - "id": 296, + "id": 1611, "name": "collateralFactor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "2840:16:0", + "referencedDeclaration": 1580, + "src": "3412:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3968,33 +4637,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 297, + "id": 1612, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2880:6:0", + "referencedDeclaration": 1575, + "src": "3452:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 298, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2887:19:0", + "memberLocation": "3459:19:2", "memberName": "exchangeRateCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 71, - "src": "2880:26:0", + "referencedDeclaration": 1341, + "src": "3452:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 299, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -4003,7 +4672,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2880:28:0", + "src": "3452:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4013,53 +4682,69 @@ { "arguments": [ { - "id": 302, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2956:6:0", + "expression": { + "id": 1617, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3515:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3529:17:2", + "memberName": "priceOracleSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 1465, + "src": "3515:31:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], "expression": { - "id": 300, + "id": 1615, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2925:11:0", + "referencedDeclaration": 1560, + "src": "3497:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, - "id": 301, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2937:18:0", - "memberName": "getUnderlyingPrice", + "memberLocation": "3509:5:2", + "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "2925:30:0", + "referencedDeclaration": 1430, + "src": "3497:17:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", - "typeString": "function (contract CToken) view external returns (uint256)" + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) view external returns (uint256)" } }, - "id": 303, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, @@ -4068,7 +4753,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2925:38:0", + "src": "3497:50:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4111,32 +4796,32 @@ "typeString": "uint256" } ], - "id": 274, + "id": 1589, "name": "CTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2540:14:0", + "referencedDeclaration": 1450, + "src": "3112:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" } }, - "id": 304, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2565:6:0", - "2598:9:0", - "2653:7:0", - "2697:17:0", - "2761:13:0", - "2822:16:0", - "2866:12:0", - "2918:5:0" + "3137:6:2", + "3170:9:2", + "3225:7:2", + "3269:17:2", + "3333:13:2", + "3394:16:2", + "3438:12:2", + "3490:5:2" ], "names": [ "cToken", @@ -4149,62 +4834,62 @@ "price" ], "nodeType": "FunctionCall", - "src": "2540:432:0", + "src": "3112:444:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "functionReturnParameters": 263, - "id": 305, + "functionReturnParameters": 1572, + "id": 1621, "nodeType": "Return", - "src": "2527:445:0" + "src": "3099:457:2" } ] }, - "functionSelector": "bc3b5005", + "functionSelector": "a72b45e0", "implemented": true, "kind": "function", "modifiers": [], "name": "cTokenMetadata", - "nameLocation": "2257:14:0", + "nameLocation": "2766:14:2", "parameters": { - "id": 259, + "id": 1568, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 248, + "id": 1557, "mutability": "mutable", "name": "comptroller", - "nameLocation": "2289:11:0", + "nameLocation": "2798:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2277:23:0", + "scope": 1623, + "src": "2786:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 247, + "id": 1556, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 246, + "id": 1555, "name": "Comptroller", "nameLocations": [ - "2277:11:0" + "2786:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "2277:11:0" + "referencedDeclaration": 1423, + "src": "2786:11:2" }, - "referencedDeclaration": 148, - "src": "2277:11:0", + "referencedDeclaration": 1423, + "src": "2786:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -4212,36 +4897,36 @@ }, { "constant": false, - "id": 251, + "id": 1560, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "2318:11:0", + "nameLocation": "2827:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2306:23:0", + "scope": 1623, + "src": "2815:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 250, + "id": 1559, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 249, + "id": 1558, "name": "PriceOracle", "nameLocations": [ - "2306:11:0" + "2815:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "2306:11:0" + "referencedDeclaration": 1431, + "src": "2815:11:2" }, - "referencedDeclaration": 157, - "src": "2306:11:0", + "referencedDeclaration": 1431, + "src": "2815:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, @@ -4249,50 +4934,50 @@ }, { "constant": false, - "id": 254, + "id": 1563, "mutability": "mutable", - "name": "cToken", - "nameLocation": "2342:6:0", + "name": "cTokenRequest", + "nameLocation": "2865:13:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2335:13:0", + "scope": 1623, + "src": "2844:34:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" }, "typeName": { - "id": 253, + "id": 1562, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 252, - "name": "CToken", + "id": 1561, + "name": "CTokenRequest", "nameLocations": [ - "2335:6:0" + "2844:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "2335:6:0" + "referencedDeclaration": 1466, + "src": "2844:13:2" }, - "referencedDeclaration": 72, - "src": "2335:6:0", + "referencedDeclaration": 1466, + "src": "2844:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, "visibility": "internal" }, { "constant": false, - "id": 256, + "id": 1565, "mutability": "mutable", "name": "account", - "nameLocation": "2370:7:0", + "nameLocation": "2900:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2354:23:0", + "scope": 1623, + "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4300,10 +4985,10 @@ "typeString": "address payable" }, "typeName": { - "id": 255, + "id": 1564, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2354:15:0", + "src": "2884:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4314,13 +4999,13 @@ }, { "constant": false, - "id": 258, + "id": 1567, "mutability": "mutable", "name": "spender", - "nameLocation": "2399:7:0", + "nameLocation": "2929:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2383:23:0", + "scope": 1623, + "src": "2913:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4328,10 +5013,10 @@ "typeString": "address payable" }, "typeName": { - "id": 257, + "id": 1566, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2383:15:0", + "src": "2913:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4341,74 +5026,91 @@ "visibility": "internal" } ], - "src": "2271:139:0" + "src": "2780:160:2" }, "returnParameters": { - "id": 263, + "id": 1572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 262, + "id": 1571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2427:21:0", + "scope": 1623, + "src": "2957:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" }, "typeName": { - "id": 261, + "id": 1570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 260, + "id": 1569, "name": "CTokenMetadata", "nameLocations": [ - "2427:14:0" + "2957:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2427:14:0" + "referencedDeclaration": 1450, + "src": "2957:14:2" }, - "referencedDeclaration": 174, - "src": "2427:14:0", + "referencedDeclaration": 1450, + "src": "2957:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, "visibility": "internal" } ], - "src": "2426:23:0" + "src": "2956:23:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "abstract": false, - "baseContracts": [], + "baseContracts": [ + { + "baseName": { + "id": 1432, + "name": "CometQuery", + "nameLocations": [ + "1611:10:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1611:10:2" + }, + "id": 1433, + "nodeType": "InheritanceSpecifier", + "src": "1611:10:2" + } + ], "canonicalName": "CompoundV2Query", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 308 + 1624, + 1268 ], "name": "CompoundV2Query", - "nameLocation": "1518:15:0", - "scope": 309, + "nameLocation": "1592:15:2", + "scope": 1625, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 0 + "id": 2 } \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json new file mode 100644 index 0000000..6828f3c --- /dev/null +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json @@ -0,0 +1,4675 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "allowance(address,address)": "dd62ed3e" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"Comet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x154d43daddb92f92e68e29603b6190225e8cee3fa37b76caea153e03db5a7f9f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e953b431019347342d05d6bf507c6286fd1e5f03c7c4c9ded1c7e689c8358e0e\",\"dweb:/ipfs/QmQ5iFzyXAKaiJkCDK8R13Tgm6RorXZ19shjaRkrsqGkTM\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "Sleuth/CompoundV2Query.sol": "Comet" + }, + "libraries": {} + }, + "sources": { + "Sleuth/CompoundV2Query.sol": { + "keccak256": "0x154d43daddb92f92e68e29603b6190225e8cee3fa37b76caea153e03db5a7f9f", + "urls": [ + "bzz-raw://e953b431019347342d05d6bf507c6286fd1e5f03c7c4c9ded1c7e689c8358e0e", + "dweb:/ipfs/QmQ5iFzyXAKaiJkCDK8R13Tgm6RorXZ19shjaRkrsqGkTM" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "Sleuth/CompoundV2Query.sol", + "id": 352, + "exportedSymbols": { + "CToken": [ + 77 + ], + "Comet": [ + 87 + ], + "CompoundV2Query": [ + 351 + ], + "Comptroller": [ + 163 + ], + "PriceOracle": [ + 171 + ] + }, + "nodeType": "SourceUnit", + "src": "39:3437:0", + "nodes": [ + { + "id": 1, + "nodeType": "PragmaDirective", + "src": "39:24:0", + "literals": [ + "solidity", + "^", + "0.8", + ".16" + ] + }, + { + "id": 77, + "nodeType": "ContractDefinition", + "src": "65:723:0", + "nodes": [ + { + "id": 7, + "nodeType": "FunctionDefinition", + "src": "86:54:0", + "functionSelector": "5fe3b567", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "comptroller", + "nameLocation": "95:11:0", + "parameters": { + "id": 2, + "nodeType": "ParameterList", + "parameters": [], + "src": "106:2:0" + }, + "returnParameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7, + "src": "127:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "Comptroller", + "nameLocations": [ + "127:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 163, + "src": "127:11:0" + }, + "referencedDeclaration": 163, + "src": "127:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + } + ], + "src": "126:13:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 16, + "nodeType": "FunctionDefinition", + "src": "144:68:0", + "functionSelector": "a9059cbb", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "153:8:0", + "parameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "dst", + "nameLocation": "170:3:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "162:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "162:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "amount", + "nameLocation": "180:6:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "175:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "175:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "161:26:0" + }, + "returnParameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "206:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "206:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "205:6:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27, + "nodeType": "FunctionDefinition", + "src": "216:85:0", + "functionSelector": "23b872dd", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "225:12:0", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "src", + "nameLocation": "246:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "238:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "dst", + "nameLocation": "259:3:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "251:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "amount", + "nameLocation": "269:6:0", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "264:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 21, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "264:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "237:39:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27, + "src": "295:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "294:6:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 36, + "nodeType": "FunctionDefinition", + "src": "305:71:0", + "functionSelector": "095ea7b3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "314:7:0", + "parameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "spender", + "nameLocation": "330:7:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "322:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "amount", + "nameLocation": "344:6:0", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "339:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "339:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "321:30:0" + }, + "returnParameters": { + "id": 35, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 36, + "src": "370:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 33, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "369:6:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 45, + "nodeType": "FunctionDefinition", + "src": "380:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "389:9:0", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "owner", + "nameLocation": "407:5:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "399:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "399:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "mutability": "mutable", + "name": "spender", + "nameLocation": "422:7:0", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "414:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 39, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "414:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "398:32:0" + }, + "returnParameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "454:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "454:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "453:6:0" + }, + "scope": 77, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 52, + "nodeType": "FunctionDefinition", + "src": "464:63:0", + "functionSelector": "70a08231", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "473:9:0", + "parameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "owner", + "nameLocation": "491:5:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "483:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 46, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "482:15:0" + }, + "returnParameters": { + "id": 51, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 50, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "521:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 49, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "520:6:0" + }, + "scope": 77, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 59, + "nodeType": "FunctionDefinition", + "src": "531:68:0", + "functionSelector": "3af9e669", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOfUnderlying", + "nameLocation": "540:19:0", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "owner", + "nameLocation": "568:5:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "560:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "560:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "559:15:0" + }, + "returnParameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "593:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 56, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "592:6:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 66, + "nodeType": "FunctionDefinition", + "src": "603:71:0", + "functionSelector": "17bfdfbc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowBalanceCurrent", + "nameLocation": "612:20:0", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "account", + "nameLocation": "641:7:0", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "633:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "632:17:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 66, + "src": "668:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "668:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "667:6:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 71, + "nodeType": "FunctionDefinition", + "src": "678:55:0", + "functionSelector": "bd6d894d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exchangeRateCurrent", + "nameLocation": "687:19:0", + "parameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:0" + }, + "returnParameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "727:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 68, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "727:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "726:6:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 76, + "nodeType": "FunctionDefinition", + "src": "737:49:0", + "functionSelector": "6f307dc3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "underlying", + "nameLocation": "746:10:0", + "parameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [], + "src": "756:2:0" + }, + "returnParameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 74, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 76, + "src": "777:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 73, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "777:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "776:9:0" + }, + "scope": 77, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CToken", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 77 + ], + "name": "CToken", + "nameLocation": "75:6:0", + "scope": 352, + "usedErrors": [] + }, + { + "id": 87, + "nodeType": "ContractDefinition", + "src": "790:102:0", + "nodes": [ + { + "id": 86, + "nodeType": "FunctionDefinition", + "src": "810:80:0", + "functionSelector": "dd62ed3e", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "819:9:0", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79, + "mutability": "mutable", + "name": "owner", + "nameLocation": "837:5:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "829:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "829:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "spender", + "nameLocation": "852:7:0", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "844:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "844:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "828:32:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 84, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "884:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 83, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "884:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "883:6:0" + }, + "scope": 87, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comet", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 87 + ], + "name": "Comet", + "nameLocation": "800:5:0", + "scope": 352, + "usedErrors": [] + }, + { + "id": 163, + "nodeType": "ContractDefinition", + "src": "894:668:0", + "nodes": [ + { + "id": 96, + "nodeType": "FunctionDefinition", + "src": "920:61:0", + "functionSelector": "8e8f294b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "markets", + "nameLocation": "929:7:0", + "parameters": { + "id": 90, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "937:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "937:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "936:9:0" + }, + "returnParameters": { + "id": 95, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 92, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "969:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 91, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "975:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 93, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "975:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "968:12:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 102, + "nodeType": "FunctionDefinition", + "src": "985:54:0", + "functionSelector": "7dc0d1d0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "oracle", + "nameLocation": "994:6:0", + "parameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [], + "src": "1000:2:0" + }, + "returnParameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 102, + "src": "1026:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 99, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 98, + "name": "PriceOracle", + "nameLocations": [ + "1026:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 171, + "src": "1026:11:0" + }, + "referencedDeclaration": 171, + "src": "1026:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "src": "1025:13:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 113, + "nodeType": "FunctionDefinition", + "src": "1043:79:0", + "functionSelector": "5ec88c79", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAccountLiquidity", + "nameLocation": "1052:19:0", + "parameters": { + "id": 105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 113, + "src": "1072:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1072:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1071:9:0" + }, + "returnParameters": { + "id": 112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 107, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 113, + "src": "1104:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 113, + "src": "1110:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 108, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1110:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 113, + "src": "1116:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 110, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1116:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 122, + "nodeType": "FunctionDefinition", + "src": "1126:70:0", + "functionSelector": "abfceffc", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getAssetsIn", + "nameLocation": "1135:11:0", + "parameters": { + "id": 116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 115, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1147:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1147:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1146:9:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1179:15:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$77_$dyn_memory_ptr", + "typeString": "contract CToken[]" + }, + "typeName": { + "baseType": { + "id": 118, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 117, + "name": "CToken", + "nameLocations": [ + "1179:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 77, + "src": "1179:6:0" + }, + "referencedDeclaration": 77, + "src": "1179:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "id": 119, + "nodeType": "ArrayTypeName", + "src": "1179:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_CToken_$77_$dyn_storage_ptr", + "typeString": "contract CToken[]" + } + }, + "visibility": "internal" + } + ], + "src": "1178:17:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 127, + "nodeType": "FunctionDefinition", + "src": "1200:37:0", + "functionSelector": "e9af0292", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimComp", + "nameLocation": "1209:9:0", + "parameters": { + "id": 125, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 127, + "src": "1219:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 123, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1219:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1218:9:0" + }, + "returnParameters": { + "id": 126, + "nodeType": "ParameterList", + "parameters": [], + "src": "1236:0:0" + }, + "scope": 163, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 134, + "nodeType": "FunctionDefinition", + "src": "1241:59:0", + "functionSelector": "cc7ebdc4", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compAccrued", + "nameLocation": "1250:11:0", + "parameters": { + "id": 130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 134, + "src": "1262:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1261:9:0" + }, + "returnParameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 134, + "src": "1294:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1294:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1293:6:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 141, + "nodeType": "FunctionDefinition", + "src": "1304:58:0", + "functionSelector": "1d7b33d7", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSpeeds", + "nameLocation": "1313:10:0", + "parameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 141, + "src": "1324:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 135, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1324:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1323:9:0" + }, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 139, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 141, + "src": "1356:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 138, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1356:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1355:6:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 148, + "nodeType": "FunctionDefinition", + "src": "1366:64:0", + "functionSelector": "6aa875b5", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compSupplySpeeds", + "nameLocation": "1375:16:0", + "parameters": { + "id": 144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 143, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "1392:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1392:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1391:9:0" + }, + "returnParameters": { + "id": 147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 146, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "1424:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 145, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1424:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1423:6:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 155, + "nodeType": "FunctionDefinition", + "src": "1434:64:0", + "functionSelector": "f4a433c0", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "compBorrowSpeeds", + "nameLocation": "1443:16:0", + "parameters": { + "id": 151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 150, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 155, + "src": "1460:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1460:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1459:9:0" + }, + "returnParameters": { + "id": 154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 155, + "src": "1492:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 152, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1492:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1491:6:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 162, + "nodeType": "FunctionDefinition", + "src": "1502:58:0", + "functionSelector": "4a584432", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "borrowCaps", + "nameLocation": "1511:10:0", + "parameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 157, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 162, + "src": "1522:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1521:9:0" + }, + "returnParameters": { + "id": 161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 162, + "src": "1554:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1554:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1553:6:0" + }, + "scope": 163, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "Comptroller", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 163 + ], + "name": "Comptroller", + "nameLocation": "904:11:0", + "scope": 352, + "usedErrors": [] + }, + { + "id": 171, + "nodeType": "ContractDefinition", + "src": "1564:93:0", + "nodes": [ + { + "id": 170, + "nodeType": "FunctionDefinition", + "src": "1590:65:0", + "functionSelector": "fe2c6198", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price", + "nameLocation": "1599:5:0", + "parameters": { + "id": 166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "price", + "nameLocation": "1619:5:0", + "nodeType": "VariableDeclaration", + "scope": 170, + "src": "1605:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 164, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1605:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1604:21:0" + }, + "returnParameters": { + "id": 169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 168, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 170, + "src": "1649:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1649:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1648:6:0" + }, + "scope": 171, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "PriceOracle", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 171 + ], + "name": "PriceOracle", + "nameLocation": "1574:11:0", + "scope": 352, + "usedErrors": [] + }, + { + "id": 351, + "nodeType": "ContractDefinition", + "src": "1659:1816:0", + "nodes": [ + { + "id": 188, + "nodeType": "StructDefinition", + "src": "1688:203:0", + "canonicalName": "CompoundV2Query.CTokenMetadata", + "members": [ + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1724:6:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1716:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1716:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 175, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1741:9:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1736:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 174, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1736:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1761:7:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1756:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 176, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1756:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 179, + "mutability": "mutable", + "name": "balanceUnderlying", + "nameLocation": "1779:17:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1774:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 178, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1774:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 181, + "mutability": "mutable", + "name": "borrowBalance", + "nameLocation": "1807:13:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1802:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 180, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1802:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 183, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "1831:16:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1826:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 182, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1826:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 185, + "mutability": "mutable", + "name": "exchangeRate", + "nameLocation": "1858:12:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1853:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 184, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1853:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "price", + "nameLocation": "1881:5:0", + "nodeType": "VariableDeclaration", + "scope": 188, + "src": "1876:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 186, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1876:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenMetadata", + "nameLocation": "1695:14:0", + "scope": 351, + "visibility": "public" + }, + { + "id": 195, + "nodeType": "StructDefinition", + "src": "1895:81:0", + "canonicalName": "CompoundV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 190, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1927:15:0", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "1922:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 189, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1922:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1965:6:0", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "1948:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 192, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 191, + "name": "CTokenMetadata", + "nameLocations": [ + "1948:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 188, + "src": "1948:14:0" + }, + "referencedDeclaration": 188, + "src": "1948:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 193, + "nodeType": "ArrayTypeName", + "src": "1948:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1902:13:0", + "scope": 351, + "visibility": "public" + }, + { + "id": 201, + "nodeType": "StructDefinition", + "src": "1980:75:0", + "canonicalName": "CompoundV2Query.CTokenRequest", + "members": [ + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2014:6:0", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "2007:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + }, + "typeName": { + "id": 197, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 196, + "name": "CToken", + "nameLocations": [ + "2007:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 77, + "src": "2007:6:0" + }, + "referencedDeclaration": 77, + "src": "2007:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 200, + "mutability": "mutable", + "name": "priceOracleSymbol", + "nameLocation": "2033:17:0", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "2026:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 199, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenRequest", + "nameLocation": "1987:13:0", + "scope": 351, + "visibility": "public" + }, + { + "id": 281, + "nodeType": "FunctionDefinition", + "src": "2059:606:0", + "body": { + "id": 280, + "nodeType": "Block", + "src": "2260:405:0", + "statements": [ + { + "assignments": [ + 223 + ], + "declarations": [ + { + "constant": false, + "id": 223, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2278:11:0", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "2266:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 222, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 221, + "name": "PriceOracle", + "nameLocations": [ + "2266:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 171, + "src": "2266:11:0" + }, + "referencedDeclaration": 171, + "src": "2266:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + } + ], + "id": 227, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 224, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "2292:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + } + }, + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2304:6:0", + "memberName": "oracle", + "nodeType": "MemberAccess", + "referencedDeclaration": 102, + "src": "2292:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$171_$", + "typeString": "function () view external returns (contract PriceOracle)" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2292:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2266:46:0" + }, + { + "assignments": [ + 229 + ], + "declarations": [ + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "cTokenCount", + "nameLocation": "2323:11:0", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "2318:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 228, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2318:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 232, + "initialValue": { + "expression": { + "id": 230, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "2337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" + } + }, + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2345:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2337:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2318:33:0" + }, + { + "assignments": [ + 237 + ], + "declarations": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "2381:6:0", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "2357:30:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 235, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 234, + "name": "CTokenMetadata", + "nameLocations": [ + "2357:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 188, + "src": "2357:14:0" + }, + "referencedDeclaration": 188, + "src": "2357:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 236, + "nodeType": "ArrayTypeName", + "src": "2357:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + } + ], + "id": 244, + "initialValue": { + "arguments": [ + { + "id": 242, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2411:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2390:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 239, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 238, + "name": "CTokenMetadata", + "nameLocations": [ + "2394:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 188, + "src": "2394:14:0" + }, + "referencedDeclaration": 188, + "src": "2394:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 240, + "nodeType": "ArrayTypeName", + "src": "2394:16:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + } + }, + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2390:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2357:66:0" + }, + { + "body": { + "id": 269, + "nodeType": "Block", + "src": "2468:97:0", + "statements": [ + { + "expression": { + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 255, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2476:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + "id": 257, + "indexExpression": { + "id": 256, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "2483:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2476:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 259, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "2503:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + } + }, + { + "id": 260, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 223, + "src": "2516:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + } + }, + { + "baseExpression": { + "id": 261, + "name": "cTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "2529:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" + } + }, + "id": 263, + "indexExpression": { + "id": 262, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "2537:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2529:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$201_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" + } + }, + { + "id": 264, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 213, + "src": "2541:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 265, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2550:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + }, + { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + }, + { + "typeIdentifier": "t_struct$_CTokenRequest_$201_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 258, + "name": "cTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 350, + "src": "2488:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$163_$_t_contract$_PriceOracle_$171_$_t_struct$_CTokenRequest_$201_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$188_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2488:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "src": "2476:82:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "id": 268, + "nodeType": "ExpressionStatement", + "src": "2476:82:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 249, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "2446:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 250, + "name": "cTokenCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 229, + "src": "2450:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2446:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 270, + "initializationExpression": { + "assignments": [ + 246 + ], + "declarations": [ + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "i", + "nameLocation": "2439:1:0", + "nodeType": "VariableDeclaration", + "scope": 270, + "src": "2434:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2434:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 248, + "initialValue": { + "hexValue": "30", + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2443:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2434:10:0" + }, + "loopExpression": { + "expression": { + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2463:3:0", + "subExpression": { + "id": 252, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "2463:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 254, + "nodeType": "ExpressionStatement", + "src": "2463:3:0" + }, + "nodeType": "ForStatement", + "src": "2429:136:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 274, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 213, + "src": "2625:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 275, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 272, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 207, + "src": "2609:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$87", + "typeString": "contract Comet" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2615:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 86, + "src": "2609:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2609:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 277, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "2652:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + ], + "id": 271, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "2577:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$195_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2592:15:0", + "2644:6:0" + ], + "names": [ + "migratorEnabled", + "tokens" + ], + "nodeType": "FunctionCall", + "src": "2577:83:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$195_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse memory" + } + }, + "functionReturnParameters": 220, + "id": 279, + "nodeType": "Return", + "src": "2570:90:0" + } + ] + }, + "functionSelector": "cf739a9e", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "query", + "nameLocation": "2068:5:0", + "parameters": { + "id": 216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "2091:11:0", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "2079:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 203, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 202, + "name": "Comptroller", + "nameLocations": [ + "2079:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 163, + "src": "2079:11:0" + }, + "referencedDeclaration": 163, + "src": "2079:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "comet", + "nameLocation": "2114:5:0", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "2108:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$87", + "typeString": "contract Comet" + }, + "typeName": { + "id": 206, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 205, + "name": "Comet", + "nameLocations": [ + "2108:5:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 87, + "src": "2108:5:0" + }, + "referencedDeclaration": 87, + "src": "2108:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$87", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "cTokens", + "nameLocation": "2150:7:0", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "2125:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" + }, + "typeName": { + "baseType": { + "id": 209, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 208, + "name": "CTokenRequest", + "nameLocations": [ + "2125:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 201, + "src": "2125:13:0" + }, + "referencedDeclaration": 201, + "src": "2125:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$201_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" + } + }, + "id": 210, + "nodeType": "ArrayTypeName", + "src": "2125:15:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 213, + "mutability": "mutable", + "name": "account", + "nameLocation": "2179:7:0", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "2163:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2163:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2208:7:0", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "2192:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2192:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2073:146:0" + }, + "returnParameters": { + "id": 220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 281, + "src": "2238:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$195_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" + }, + "typeName": { + "id": 218, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 217, + "name": "QueryResponse", + "nameLocations": [ + "2238:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 195, + "src": "2238:13:0" + }, + "referencedDeclaration": 195, + "src": "2238:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$195_storage_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" + } + }, + "visibility": "internal" + } + ], + "src": "2237:22:0" + }, + "scope": 351, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 350, + "nodeType": "FunctionDefinition", + "src": "2669:804:0", + "body": { + "id": 349, + "nodeType": "Block", + "src": "2892:581:0", + "statements": [ + { + "assignments": [ + 302 + ], + "declarations": [ + { + "constant": false, + "id": 302, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2905:6:0", + "nodeType": "VariableDeclaration", + "scope": 349, + "src": "2898:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + }, + "typeName": { + "id": 301, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 300, + "name": "CToken", + "nameLocations": [ + "2898:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 77, + "src": "2898:6:0" + }, + "referencedDeclaration": 77, + "src": "2898:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "id": 305, + "initialValue": { + "expression": { + "id": 303, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 290, + "src": "2914:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$201_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 304, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2928:6:0", + "memberName": "cToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 198, + "src": "2914:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2898:36:0" + }, + { + "assignments": [ + null, + 307 + ], + "declarations": [ + null, + { + "constant": false, + "id": 307, + "mutability": "mutable", + "name": "collateralFactor", + "nameLocation": "2948:16:0", + "nodeType": "VariableDeclaration", + "scope": 349, + "src": "2943:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 306, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2943:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 315, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 312, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "2996:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + ], + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2988:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2988:7:0", + "typeDescriptions": {} + } + }, + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2988:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 308, + "name": "comptroller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 284, + "src": "2968:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + } + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2980:7:0", + "memberName": "markets", + "nodeType": "MemberAccess", + "referencedDeclaration": 96, + "src": "2968:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (address) view external returns (bool,uint256)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2968:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2940:64:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 319, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "3065:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + ], + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3057:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3057:7:0", + "typeDescriptions": {} + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3057:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 323, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3110:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 324, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "3119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 321, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "3093:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3100:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "3093:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3093:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 328, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3163:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 326, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "3146:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3153:9:0", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 52, + "src": "3146:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3146:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 332, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3227:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 330, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "3200:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3207:19:0", + "memberName": "balanceOfUnderlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 59, + "src": "3200:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3200:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 336, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 292, + "src": "3288:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 334, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "3260:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3267:20:0", + "memberName": "borrowBalanceCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 66, + "src": "3260:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) external returns (uint256)" + } + }, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3260:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 338, + "name": "collateralFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 307, + "src": "3324:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 339, + "name": "cToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 302, + "src": "3364:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$77", + "typeString": "contract CToken" + } + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3371:19:0", + "memberName": "exchangeRateCurrent", + "nodeType": "MemberAccess", + "referencedDeclaration": 71, + "src": "3364:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3364:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "expression": { + "id": 344, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 290, + "src": "3427:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$201_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3441:17:0", + "memberName": "priceOracleSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 200, + "src": "3427:31:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 342, + "name": "priceOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "3409:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3421:5:0", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 170, + "src": "3409:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) view external returns (uint256)" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3409:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 316, + "name": "CTokenMetadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 188, + "src": "3024:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$188_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" + } + }, + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3049:6:0", + "3082:9:0", + "3137:7:0", + "3181:17:0", + "3245:13:0", + "3306:16:0", + "3350:12:0", + "3402:5:0" + ], + "names": [ + "cToken", + "allowance", + "balance", + "balanceUnderlying", + "borrowBalance", + "collateralFactor", + "exchangeRate", + "price" + ], + "nodeType": "FunctionCall", + "src": "3024:444:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory" + } + }, + "functionReturnParameters": 299, + "id": 348, + "nodeType": "Return", + "src": "3011:457:0" + } + ] + }, + "functionSelector": "a72b45e0", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cTokenMetadata", + "nameLocation": "2678:14:0", + "parameters": { + "id": 295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 284, + "mutability": "mutable", + "name": "comptroller", + "nameLocation": "2710:11:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "2698:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + }, + "typeName": { + "id": 283, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 282, + "name": "Comptroller", + "nameLocations": [ + "2698:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 163, + "src": "2698:11:0" + }, + "referencedDeclaration": 163, + "src": "2698:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comptroller_$163", + "typeString": "contract Comptroller" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 287, + "mutability": "mutable", + "name": "priceOracle", + "nameLocation": "2739:11:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "2727:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + }, + "typeName": { + "id": 286, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 285, + "name": "PriceOracle", + "nameLocations": [ + "2727:11:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 171, + "src": "2727:11:0" + }, + "referencedDeclaration": 171, + "src": "2727:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PriceOracle_$171", + "typeString": "contract PriceOracle" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 290, + "mutability": "mutable", + "name": "cTokenRequest", + "nameLocation": "2777:13:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "2756:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$201_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" + }, + "typeName": { + "id": 289, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 288, + "name": "CTokenRequest", + "nameLocations": [ + "2756:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 201, + "src": "2756:13:0" + }, + "referencedDeclaration": 201, + "src": "2756:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$201_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 292, + "mutability": "mutable", + "name": "account", + "nameLocation": "2812:7:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "2796:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2796:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 294, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2841:7:0", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "2825:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 293, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "2692:160:0" + }, + "returnParameters": { + "id": 299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 298, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 350, + "src": "2869:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + }, + "typeName": { + "id": 297, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 296, + "name": "CTokenMetadata", + "nameLocations": [ + "2869:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 188, + "src": "2869:14:0" + }, + "referencedDeclaration": 188, + "src": "2869:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "visibility": "internal" + } + ], + "src": "2868:23:0" + }, + "scope": 351, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "CompoundV2Query", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 351 + ], + "name": "CompoundV2Query", + "nameLocation": "1668:15:0", + "scope": 352, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 0 +} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json index 414dfd3..a3ac70c 100644 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json @@ -13,9 +13,21 @@ "type": "address" }, { - "internalType": "contract CToken", - "name": "cToken", - "type": "address" + "components": [ + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + }, + { + "internalType": "string", + "name": "priceOracleSymbol", + "type": "string" + } + ], + "internalType": "struct CompoundV2Query.CTokenRequest", + "name": "cTokenRequest", + "type": "tuple" }, { "internalType": "address payable", @@ -84,33 +96,166 @@ { "inputs": [ { - "internalType": "contract Comptroller", - "name": "comptroller", + "internalType": "contract Comet", + "name": "comet", "type": "address" }, { - "internalType": "contract CToken[]", - "name": "cTokens", - "type": "address[]" - }, + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ], + "name": "collateralInfo", + "outputs": [ { - "internalType": "address payable", - "name": "account", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", "type": "address" }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset", + "name": "asset", + "type": "tuple" + }, { "internalType": "address payable", - "name": "spender", + "name": "account", "type": "address" } ], - "name": "query", + "name": "collateralInfoWithAccount", "outputs": [ { "components": [ { "internalType": "address", - "name": "cToken", + "name": "collateralAsset", "type": "address" }, { @@ -125,136 +270,1618 @@ }, { "internalType": "uint256", - "name": "balanceUnderlying", + "name": "collateralFactor", "type": "uint256" }, { "internalType": "uint256", - "name": "borrowBalance", + "name": "decimals", "type": "uint256" }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, { "internalType": "uint256", - "name": "collateralFactor", + "name": "liquidateCollateralFactor", "type": "uint256" }, { "internalType": "uint256", - "name": "exchangeRate", + "name": "liquidationFactor", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "components": [ + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + }, + { + "internalType": "string", + "name": "priceOracleSymbol", + "type": "string" + } + ], + "internalType": "struct CompoundV2Query.CTokenRequest[]", + "name": "cTokens", + "type": "tuple[]" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "name": "getMigratorData", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "migratorEnabled", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ], + "internalType": "struct CompoundV2Query.CTokenMetadata[]", + "name": "tokens", + "type": "tuple[]" + }, + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "cometState", + "type": "tuple" + } + ], + "internalType": "struct CompoundV2Query.QueryResponse", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + } + ], + "name": "query", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ], + "internalType": "struct CometQuery.BaseAsset", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAsset[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "bulker", + "type": "address" + } + ], + "name": "queryWithAccount", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]" + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ], + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": { + "object": "0x6080806040523461001657612b79908161001c8239f35b600080fdfe6101a0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b1a57806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610f8e565b611675565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a019061101f565b9260a08201511661024089015260c0810151610260890152015161019f198783030161028088015261101f565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611470565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610f8e565b6024359060ff821682036101e6576102339161021f9161221f565b604051918291602083526020830190611470565b0390f35b346101e6576003196060368201126101e657610251610f8e565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161145c565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113b3565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161145c565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113b3565b6101208401520135610140820152610342610fba565b91612585565b604051918291602083526020830190611044565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610f8e565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd9336906004016113fa565b6103ce610fd0565b916103d7610fe6565b936127df565b6103ea604051809261127d565bf35b346101e65760a03660031901126101e657610405610f8e565b61040d610fa4565b906001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610457610fd0565b61045f610fe6565b60405161046b816112d0565b600081526060602082015260406104806120f4565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0388165afa90811561092157600091610ad8575b506104c1604435600401356115b6565b936104cf6040519586611377565b60046044350135808652601f19906104e6906115b6565b0160005b818110610ac157505060005b604435600401358110610a58575050604051636eb1769f60e11b81526001600160a01b03808516600483015290921660248301525092602084806044810103816001600160a01b0385165afa93841561092157600094610a24575b5061055a6120f4565b5061056481611675565b6040516370a0823160e01b81526001600160a01b0384811660048301526020908290602490829087165afa908115610921576000916109f2575b50604051630dd3126d60e21b81526001600160a01b0385811660048301526020908290602490829088165afa908115610921576000916109c0575b50825151604051636eb1769f60e11b81526001600160a01b038781166004830152868116602483015290911690602081604481855afa9081156109215760009161098e575b50838381031161097857869385519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610944575b506106ac604051806080526112eb565b608051526020608051015203604060805101526060608051015260808051015260a0608051015260c0608051015260e0608051015261010060805101526101206080510152610140608051015260a08101515194610709866115b6565b956107176040519788611377565b808752610726601f19916115b6565b0160005b81811061092d57505060005b60a0830151805160ff8316101561078a57906107648661075d6107859460ff851690611632565b5187612585565b61077160ff83168a611632565b5261077f60ff821689611632565b50611621565b610736565b5050946020820151936040830151936060840151926020608086015193604460405180958193636eb1769f60e11b835260018060a01b031660048301526000602483015260018060a01b03165afa918215610921576000926108ed575b5060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b61081c8d61133f565b6080518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519261086f846112d0565b83526020830191825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108cc578480610233888751601f198483030160608501526110fb565b9091946020610100826108e26001948a5161127d565b0196019291016108ac565b9091506020813d602011610919575b8161090960209383611377565b810103126101e6575190896107e7565b3d91506108fc565b6040513d6000823e3d90fd5b6020906109386121a1565b82828b0101520161072a565b909b506020813d602011610970575b8161096060209383611377565b810103126101e657519a3861069c565b3d9150610953565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109b8575b816109a960209383611377565b810103126101e657518961061e565b3d915061099c565b90506020813d6020116109ea575b816109db60209383611377565b810103126101e65751876105d9565b3d91506109ce565b90506020813d602011610a1c575b81610a0d60209383611377565b810103126101e657518661059e565b3d9150610a00565b9093506020813d602011610a50575b81610a4060209383611377565b810103126101e657519284610551565b3d9150610a33565b60621960443536030160248260051b60443501013512156101e657610a9a8486610a93366024808760051b60443501013560443501016113fa565b86866127df565b610aa48288611632565b52610aaf8187611632565b506000198114610978576001016104f6565b602090610acc6127a1565b82828a010152016104ea565b90506020813d602011610b12575b81610af360209383611377565b810103126101e657516001600160a01b03811681036101e657856104b1565b3d9150610ae6565b346101e65760603660031901126101e657610b33610f8e565b610b3b610fa4565b90610b44610fba565b91610b4d6120f4565b50610b5782611675565b6040516370a0823160e01b81526001600160a01b0383811660048301529193916020908290602490829086165afa90811561092157600091610f5c575b50604051630dd3126d60e21b81526001600160a01b0384811660048301526020908290602490829087165afa90811561092157600091610f2a575b50845151604051636eb1769f60e11b81526001600160a01b038681166004830152858116602483015290911690602081604481855afa90811561092157600091610ef8575b50838381031161097857859387519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610ec4575b50610ca26040518060a0526112eb565b60a05152602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a08301515192610cff846115b6565b93610d0d6040519586611377565b808552610d1c601f19916115b6565b0160005b818110610ead57505060005b60a0820151805160ff83161015610d7a5790610d5a85610d53610d759460ff851690611632565b5186612585565b610d6760ff831688611632565b5261077f60ff821687611632565b610d2c565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b0398891660048201529990971660248a0152919691959394909290889081806044810103916001600160a01b03165afa90811561092157600091610e77575b610233975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610e1d8d61133f565b60a0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906110fb565b90506020873d602011610ea5575b81610e9260209383611377565b810103126101e657610233965190610de4565b3d9150610e85565b602090610eb86121a1565b82828901015201610d20565b909b506020813d602011610ef0575b81610ee060209383611377565b810103126101e657519a38610c92565b3d9150610ed3565b90506020813d602011610f22575b81610f1360209383611377565b810103126101e6575188610c14565b3d9150610f06565b90506020813d602011610f54575b81610f4560209383611377565b810103126101e6575186610bcf565b3d9150610f38565b90506020813d602011610f86575b81610f7760209383611377565b810103126101e6575185610b94565b3d9150610f6a565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b83811061100f5750506000910152565b8181015183820152602001610fff565b9060209161103881518092818552858086019101610ffc565b601f01601f1916010190565b906110e260018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261109660a08501516101c08060a087015285019061101f565b9060c085015160c085015260e085015160e0850152610100808601519085015261012090818601511690840152610140808501519084015261016080850151908483039085015261101f565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161116d610160938461026088015261030087019061101f565b9060e083015116610280860152610100808301516102a08701526111a5610120928385015161019f19898303016102c08a015261101f565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061124e5750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b848061126d8f93600194601f1987830301885251611044565b9e0193019301919493929061120a565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101a081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ca82611398565b926113d86040519485611377565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261145792016113b3565b910152565b35906001600160a01b03821682036101e657565b906114f760018060a01b0380845116835260208401516020840152604084015160408401526114ae606085015161016080606087015285019061101f565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e0840152610100808501519084015261012080850151908483039085015261101f565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e657805161158781611398565b926115956040519485611377565b818452602082840101116101e6576115b39160208085019101610ffc565b90565b6001600160401b03811161035c5760051b60200190565b604051906115da826112eb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109785760010190565b80518210156116465760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610978570290565b60c052600061016060405161168981611307565b60405161169581611323565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360c051165afa8015610921576000610120526120b8575b506040519063c55dae6360e01b825260208260048160018060a01b0360c051165afa9182156109215760009261207c575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360c051165afa91821561092157600092612040575b506040519163300e6beb60e01b835260208360048160018060a01b0360c051165afa9283156109215760009361200c575b506040516355d3f8af60e11b815260c051602090829060049082906001600160a01b03165afa90811561092157600091611fda575b506040519363189bb2f160e01b855260208560048160018060a01b0360c051165afa94851561092157600095611fa6575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360c051165afa91821561092157600092611f72575b50604051936349b270c560e11b855260208560048160018060a01b0360c051165afa94851561092157600095611f3e575b5060405197637eb7113160e01b895260208960048160018060a01b0360c051165afa98891561092157600099611f0a575b50604051926318160ddd60e01b845260208460048160018060a01b0360c051165afa93841561092157600094611ed6575b506040519163020a17bd60e61b835260208360048160018060a01b0360c051165afa92831561092157600093611ea2575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360c051165afa94851561092157600095611dd6575b50604051634fd41dad60e11b8152600481018d905260c051602090829060249082906001600160a01b03165afa801561092157600061010052611d9a575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360c051165afa9b8c156109215760009c611d5e575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561092157600094611d41575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561092157600061018052611d0d575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561092157600092611ce8575b506040516341976e0960e01b81526001600160a01b03848116600483015260c05191959160209187916024918391165afa94851561092157600095611cb4575b506040516101608181526370a0823160e01b90915260c05181516001600160a01b039182166004909101529051602091602490829085165afa8061014052156109215760009061014051611c7c575b611afc6040518060e052611323565b60018060a01b031660e05152602060e051015261018051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e080510152611b5360ff61012051166115b6565b97611b61604051998a611377565b60ff61012051168952601f19611b7c60ff61012051166115b6565b0160005b818110611c6457505060005b60ff610120511660ff82161015611bcd5780611bad611bc89260c05161221f565b611bba60ff83168d611632565b5261077f60ff82168c611632565b611b8c565b50919395979092949698611bf76001600160401b03611bf081610100511661165c565b921661165c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c218c611307565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611c726115cd565b9201015201611b80565b905060203d602011611cad575b611c968161016051611377565b6020610160518092810103126101e6575190611aed565b503d611c89565b9094506020813d602011611ce0575b81611cd060209383611377565b810103126101e657519338611a9e565b3d9150611cc3565b611d069192503d806000833e611cfe8183611377565b810190611555565b9038611a5e565b6020813d602011611d39575b81611d2660209383611377565b810103126101e657516101805238611a2e565b3d9150611d19565b611d579194503d806000833e611cfe8183611377565b92386119fd565b909b506020813d602011611d92575b81611d7a60209383611377565b810103126101e657611d8b90611527565b9a386119cd565b3d9150611d6d565b6020813d602011611dce575b81611db360209383611377565b810103126101e657611dc490611527565b6101005238611997565b3d9150611da6565b909450610100813d61010011611e9a575b81611df56101009383611377565b810103126101e65760405190611e0a82611323565b611e1381611527565b8252611e2160208201611527565b6020830152611e3260408201611527565b6040830152611e4360608201611527565b6060830152611e546080820161153b565b6080830152611e6560a0820161153b565b60a083015260c081015164ffffffffff811681036101e65760c0830152611e8e9060e001611505565b60e08201529338611959565b3d9150611de7565b9092506020813d602011611ece575b81611ebe60209383611377565b810103126101e657519138611927565b3d9150611eb1565b9093506020813d602011611f02575b81611ef260209383611377565b810103126101e6575192386118f6565b3d9150611ee5565b9098506020813d602011611f36575b81611f2660209383611377565b810103126101e6575197386118c5565b3d9150611f19565b9094506020813d602011611f6a575b81611f5a60209383611377565b810103126101e657519338611894565b3d9150611f4d565b9091506020813d602011611f9e575b81611f8e60209383611377565b810103126101e657519038611863565b3d9150611f81565b9094506020813d602011611fd2575b81611fc260209383611377565b810103126101e657519338611832565b3d9150611fb5565b90506020813d602011612004575b81611ff560209383611377565b810103126101e6575138611801565b3d9150611fe8565b9092506020813d602011612038575b8161202860209383611377565b810103126101e6575191386117cc565b3d915061201b565b9091506020813d602011612074575b8161205c60209383611377565b810103126101e65761206d90611513565b903861179b565b3d915061204f565b9091506020813d6020116120b0575b8161209860209383611377565b810103126101e6576120a990611513565b903861176a565b3d915061208b565b6020813d6020116120ec575b816120d160209383611377565b810103126101e6576120e290611505565b6101205238611739565b3d91506120c4565b604051906121018261133f565b60405161018083612111836112eb565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b604051906121ae8261135b565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b906122286115cd565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561242e576000936124cc575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124c157600092612491575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561240457908c97969594939291600095612476575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561246b57908c9160009a612439575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e1561242e5760009e61240f575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124045760009d6123d2575b5082519d8e6123a0816112eb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116123fd575b6123e98183611377565b810103126123fa5750519b38612392565b80fd5b503d6123df565b83513d6000823e3d90fd5b612426908493929f3d8091833e611cfe8183611377565b9d9091612362565b85513d6000823e3d90fd5b9150988282813d8311612464575b6124518183611377565b810103126123fa57508b90519838612323565b503d612447565b84513d6000823e3d90fd5b61248a91953d8091833e611cfe8183611377565b93386122ef565b90918582813d83116124ba575b6124a88183611377565b810103126123fa5750519060046122ac565b503d61249e565b50513d6000823e3d90fd5b90928382813d831161257e575b6124e38183611377565b810103126123fa575061257260e08651926124fd84611323565b61250681611505565b845261251460208201611513565b6020850152612524888201611513565b8885015261253460608201611527565b606085015261254560808201611527565b608085015261255660a08201611527565b60a085015261256760c08201611527565b60c08501520161220b565b60e08201529138612269565b503d6124d9565b919061258f6121a1565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa9182156109215760009261276c575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561092157600091612732575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109215760009d6126fe575b50604051809e6126aa8261135b565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161272a575b8161271960209383611377565b810103126123fa5750519b3861269b565b3d915061270c565b906020823d602011612764575b8161274c60209383611377565b810103126123fa575061275e9061220b565b3861261a565b3d915061273f565b90916020823d602011612799575b8161278760209383611377565b810103126123fa5750519060206125d6565b3d915061277a565b604051906127ae82611323565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946127ec6127a1565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b38578a918a91600098612af2575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561240457600092612ac3575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa94851561246b57600095612a8f575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561242e57600097612a5b575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f197881561242e578c8b9c9d9e60009a612a0e575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a035760009b6129d4575b5091836129609c9d9e9281809501519388519e8f9586948593631fc58c3360e31b8552840152602483019061101f565b0392165afa988915612404576000996129a5575b508251996129818b611323565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d83116129cd575b6129bc8183611377565b810103126123fa5750519738612974565b503d6129b2565b909a8482813d83116129fc575b6129eb8183611377565b810103126123fa5750519983612930565b503d6129e1565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a54575b612a328183611377565b810103126123fa5750918c97959391858c60009c9b999795519a91509b612908565b503d612a28565b969c8381813d8311612a88575b612a728183611377565b81010312612a84578c9d5051966128d5565b8d80fd5b503d612a68565b949b8281813d8311612abc575b612aa68183611377565b81010312612ab8578b9c5051946128a6565b8c80fd5b503d612a9c565b90918282813d8311612aeb575b612ada8183611377565b810103126123fa5750519038612878565b503d612ad0565b8093508480929993503d8311612b31575b612b0d8183611377565b810103126123fa578151801515036123fa5750602001519489908990612864612830565b503d612b03565b82513d6000823e3d90fdfea2646970667358221220643d0b25d4f1ac367ea3e2c9ad85e42afc253b6210285efe5ac63ea3126b38c564736f6c63430008100033", + "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x6101a0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b1a57806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610f8e565b611675565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a019061101f565b9260a08201511661024089015260c0810151610260890152015161019f198783030161028088015261101f565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611470565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610f8e565b6024359060ff821682036101e6576102339161021f9161221f565b604051918291602083526020830190611470565b0390f35b346101e6576003196060368201126101e657610251610f8e565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161145c565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113b3565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161145c565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113b3565b6101208401520135610140820152610342610fba565b91612585565b604051918291602083526020830190611044565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610f8e565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd9336906004016113fa565b6103ce610fd0565b916103d7610fe6565b936127df565b6103ea604051809261127d565bf35b346101e65760a03660031901126101e657610405610f8e565b61040d610fa4565b906001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610457610fd0565b61045f610fe6565b60405161046b816112d0565b600081526060602082015260406104806120f4565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0388165afa90811561092157600091610ad8575b506104c1604435600401356115b6565b936104cf6040519586611377565b60046044350135808652601f19906104e6906115b6565b0160005b818110610ac157505060005b604435600401358110610a58575050604051636eb1769f60e11b81526001600160a01b03808516600483015290921660248301525092602084806044810103816001600160a01b0385165afa93841561092157600094610a24575b5061055a6120f4565b5061056481611675565b6040516370a0823160e01b81526001600160a01b0384811660048301526020908290602490829087165afa908115610921576000916109f2575b50604051630dd3126d60e21b81526001600160a01b0385811660048301526020908290602490829088165afa908115610921576000916109c0575b50825151604051636eb1769f60e11b81526001600160a01b038781166004830152868116602483015290911690602081604481855afa9081156109215760009161098e575b50838381031161097857869385519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610944575b506106ac604051806080526112eb565b608051526020608051015203604060805101526060608051015260808051015260a0608051015260c0608051015260e0608051015261010060805101526101206080510152610140608051015260a08101515194610709866115b6565b956107176040519788611377565b808752610726601f19916115b6565b0160005b81811061092d57505060005b60a0830151805160ff8316101561078a57906107648661075d6107859460ff851690611632565b5187612585565b61077160ff83168a611632565b5261077f60ff821689611632565b50611621565b610736565b5050946020820151936040830151936060840151926020608086015193604460405180958193636eb1769f60e11b835260018060a01b031660048301526000602483015260018060a01b03165afa918215610921576000926108ed575b5060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b61081c8d61133f565b6080518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519261086f846112d0565b83526020830191825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108cc578480610233888751601f198483030160608501526110fb565b9091946020610100826108e26001948a5161127d565b0196019291016108ac565b9091506020813d602011610919575b8161090960209383611377565b810103126101e6575190896107e7565b3d91506108fc565b6040513d6000823e3d90fd5b6020906109386121a1565b82828b0101520161072a565b909b506020813d602011610970575b8161096060209383611377565b810103126101e657519a3861069c565b3d9150610953565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109b8575b816109a960209383611377565b810103126101e657518961061e565b3d915061099c565b90506020813d6020116109ea575b816109db60209383611377565b810103126101e65751876105d9565b3d91506109ce565b90506020813d602011610a1c575b81610a0d60209383611377565b810103126101e657518661059e565b3d9150610a00565b9093506020813d602011610a50575b81610a4060209383611377565b810103126101e657519284610551565b3d9150610a33565b60621960443536030160248260051b60443501013512156101e657610a9a8486610a93366024808760051b60443501013560443501016113fa565b86866127df565b610aa48288611632565b52610aaf8187611632565b506000198114610978576001016104f6565b602090610acc6127a1565b82828a010152016104ea565b90506020813d602011610b12575b81610af360209383611377565b810103126101e657516001600160a01b03811681036101e657856104b1565b3d9150610ae6565b346101e65760603660031901126101e657610b33610f8e565b610b3b610fa4565b90610b44610fba565b91610b4d6120f4565b50610b5782611675565b6040516370a0823160e01b81526001600160a01b0383811660048301529193916020908290602490829086165afa90811561092157600091610f5c575b50604051630dd3126d60e21b81526001600160a01b0384811660048301526020908290602490829087165afa90811561092157600091610f2a575b50845151604051636eb1769f60e11b81526001600160a01b038681166004830152858116602483015290911690602081604481855afa90811561092157600091610ef8575b50838381031161097857859387519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610ec4575b50610ca26040518060a0526112eb565b60a05152602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a08301515192610cff846115b6565b93610d0d6040519586611377565b808552610d1c601f19916115b6565b0160005b818110610ead57505060005b60a0820151805160ff83161015610d7a5790610d5a85610d53610d759460ff851690611632565b5186612585565b610d6760ff831688611632565b5261077f60ff821687611632565b610d2c565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b0398891660048201529990971660248a0152919691959394909290889081806044810103916001600160a01b03165afa90811561092157600091610e77575b610233975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610e1d8d61133f565b60a0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906110fb565b90506020873d602011610ea5575b81610e9260209383611377565b810103126101e657610233965190610de4565b3d9150610e85565b602090610eb86121a1565b82828901015201610d20565b909b506020813d602011610ef0575b81610ee060209383611377565b810103126101e657519a38610c92565b3d9150610ed3565b90506020813d602011610f22575b81610f1360209383611377565b810103126101e6575188610c14565b3d9150610f06565b90506020813d602011610f54575b81610f4560209383611377565b810103126101e6575186610bcf565b3d9150610f38565b90506020813d602011610f86575b81610f7760209383611377565b810103126101e6575185610b94565b3d9150610f6a565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b83811061100f5750506000910152565b8181015183820152602001610fff565b9060209161103881518092818552858086019101610ffc565b601f01601f1916010190565b906110e260018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261109660a08501516101c08060a087015285019061101f565b9060c085015160c085015260e085015160e0850152610100808601519085015261012090818601511690840152610140808501519084015261016080850151908483039085015261101f565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161116d610160938461026088015261030087019061101f565b9060e083015116610280860152610100808301516102a08701526111a5610120928385015161019f19898303016102c08a015261101f565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061124e5750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b848061126d8f93600194601f1987830301885251611044565b9e0193019301919493929061120a565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101a081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ca82611398565b926113d86040519485611377565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261145792016113b3565b910152565b35906001600160a01b03821682036101e657565b906114f760018060a01b0380845116835260208401516020840152604084015160408401526114ae606085015161016080606087015285019061101f565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e0840152610100808501519084015261012080850151908483039085015261101f565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e657805161158781611398565b926115956040519485611377565b818452602082840101116101e6576115b39160208085019101610ffc565b90565b6001600160401b03811161035c5760051b60200190565b604051906115da826112eb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109785760010190565b80518210156116465760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610978570290565b60c052600061016060405161168981611307565b60405161169581611323565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360c051165afa8015610921576000610120526120b8575b506040519063c55dae6360e01b825260208260048160018060a01b0360c051165afa9182156109215760009261207c575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360c051165afa91821561092157600092612040575b506040519163300e6beb60e01b835260208360048160018060a01b0360c051165afa9283156109215760009361200c575b506040516355d3f8af60e11b815260c051602090829060049082906001600160a01b03165afa90811561092157600091611fda575b506040519363189bb2f160e01b855260208560048160018060a01b0360c051165afa94851561092157600095611fa6575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360c051165afa91821561092157600092611f72575b50604051936349b270c560e11b855260208560048160018060a01b0360c051165afa94851561092157600095611f3e575b5060405197637eb7113160e01b895260208960048160018060a01b0360c051165afa98891561092157600099611f0a575b50604051926318160ddd60e01b845260208460048160018060a01b0360c051165afa93841561092157600094611ed6575b506040519163020a17bd60e61b835260208360048160018060a01b0360c051165afa92831561092157600093611ea2575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360c051165afa94851561092157600095611dd6575b50604051634fd41dad60e11b8152600481018d905260c051602090829060249082906001600160a01b03165afa801561092157600061010052611d9a575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360c051165afa9b8c156109215760009c611d5e575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561092157600094611d41575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561092157600061018052611d0d575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561092157600092611ce8575b506040516341976e0960e01b81526001600160a01b03848116600483015260c05191959160209187916024918391165afa94851561092157600095611cb4575b506040516101608181526370a0823160e01b90915260c05181516001600160a01b039182166004909101529051602091602490829085165afa8061014052156109215760009061014051611c7c575b611afc6040518060e052611323565b60018060a01b031660e05152602060e051015261018051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e080510152611b5360ff61012051166115b6565b97611b61604051998a611377565b60ff61012051168952601f19611b7c60ff61012051166115b6565b0160005b818110611c6457505060005b60ff610120511660ff82161015611bcd5780611bad611bc89260c05161221f565b611bba60ff83168d611632565b5261077f60ff82168c611632565b611b8c565b50919395979092949698611bf76001600160401b03611bf081610100511661165c565b921661165c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c218c611307565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611c726115cd565b9201015201611b80565b905060203d602011611cad575b611c968161016051611377565b6020610160518092810103126101e6575190611aed565b503d611c89565b9094506020813d602011611ce0575b81611cd060209383611377565b810103126101e657519338611a9e565b3d9150611cc3565b611d069192503d806000833e611cfe8183611377565b810190611555565b9038611a5e565b6020813d602011611d39575b81611d2660209383611377565b810103126101e657516101805238611a2e565b3d9150611d19565b611d579194503d806000833e611cfe8183611377565b92386119fd565b909b506020813d602011611d92575b81611d7a60209383611377565b810103126101e657611d8b90611527565b9a386119cd565b3d9150611d6d565b6020813d602011611dce575b81611db360209383611377565b810103126101e657611dc490611527565b6101005238611997565b3d9150611da6565b909450610100813d61010011611e9a575b81611df56101009383611377565b810103126101e65760405190611e0a82611323565b611e1381611527565b8252611e2160208201611527565b6020830152611e3260408201611527565b6040830152611e4360608201611527565b6060830152611e546080820161153b565b6080830152611e6560a0820161153b565b60a083015260c081015164ffffffffff811681036101e65760c0830152611e8e9060e001611505565b60e08201529338611959565b3d9150611de7565b9092506020813d602011611ece575b81611ebe60209383611377565b810103126101e657519138611927565b3d9150611eb1565b9093506020813d602011611f02575b81611ef260209383611377565b810103126101e6575192386118f6565b3d9150611ee5565b9098506020813d602011611f36575b81611f2660209383611377565b810103126101e6575197386118c5565b3d9150611f19565b9094506020813d602011611f6a575b81611f5a60209383611377565b810103126101e657519338611894565b3d9150611f4d565b9091506020813d602011611f9e575b81611f8e60209383611377565b810103126101e657519038611863565b3d9150611f81565b9094506020813d602011611fd2575b81611fc260209383611377565b810103126101e657519338611832565b3d9150611fb5565b90506020813d602011612004575b81611ff560209383611377565b810103126101e6575138611801565b3d9150611fe8565b9092506020813d602011612038575b8161202860209383611377565b810103126101e6575191386117cc565b3d915061201b565b9091506020813d602011612074575b8161205c60209383611377565b810103126101e65761206d90611513565b903861179b565b3d915061204f565b9091506020813d6020116120b0575b8161209860209383611377565b810103126101e6576120a990611513565b903861176a565b3d915061208b565b6020813d6020116120ec575b816120d160209383611377565b810103126101e6576120e290611505565b6101205238611739565b3d91506120c4565b604051906121018261133f565b60405161018083612111836112eb565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b604051906121ae8261135b565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b906122286115cd565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561242e576000936124cc575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124c157600092612491575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561240457908c97969594939291600095612476575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561246b57908c9160009a612439575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e1561242e5760009e61240f575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124045760009d6123d2575b5082519d8e6123a0816112eb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116123fd575b6123e98183611377565b810103126123fa5750519b38612392565b80fd5b503d6123df565b83513d6000823e3d90fd5b612426908493929f3d8091833e611cfe8183611377565b9d9091612362565b85513d6000823e3d90fd5b9150988282813d8311612464575b6124518183611377565b810103126123fa57508b90519838612323565b503d612447565b84513d6000823e3d90fd5b61248a91953d8091833e611cfe8183611377565b93386122ef565b90918582813d83116124ba575b6124a88183611377565b810103126123fa5750519060046122ac565b503d61249e565b50513d6000823e3d90fd5b90928382813d831161257e575b6124e38183611377565b810103126123fa575061257260e08651926124fd84611323565b61250681611505565b845261251460208201611513565b6020850152612524888201611513565b8885015261253460608201611527565b606085015261254560808201611527565b608085015261255660a08201611527565b60a085015261256760c08201611527565b60c08501520161220b565b60e08201529138612269565b503d6124d9565b919061258f6121a1565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa9182156109215760009261276c575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561092157600091612732575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109215760009d6126fe575b50604051809e6126aa8261135b565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161272a575b8161271960209383611377565b810103126123fa5750519b3861269b565b3d915061270c565b906020823d602011612764575b8161274c60209383611377565b810103126123fa575061275e9061220b565b3861261a565b3d915061273f565b90916020823d602011612799575b8161278760209383611377565b810103126123fa5750519060206125d6565b3d915061277a565b604051906127ae82611323565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946127ec6127a1565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b38578a918a91600098612af2575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561240457600092612ac3575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa94851561246b57600095612a8f575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561242e57600097612a5b575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f197881561242e578c8b9c9d9e60009a612a0e575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a035760009b6129d4575b5091836129609c9d9e9281809501519388519e8f9586948593631fc58c3360e31b8552840152602483019061101f565b0392165afa988915612404576000996129a5575b508251996129818b611323565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d83116129cd575b6129bc8183611377565b810103126123fa5750519738612974565b503d6129b2565b909a8482813d83116129fc575b6129eb8183611377565b810103126123fa5750519983612930565b503d6129e1565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a54575b612a328183611377565b810103126123fa5750918c97959391858c60009c9b999795519a91509b612908565b503d612a28565b969c8381813d8311612a88575b612a728183611377565b81010312612a84578c9d5051966128d5565b8d80fd5b503d612a68565b949b8281813d8311612abc575b612aa68183611377565b81010312612ab8578b9c5051946128a6565b8c80fd5b503d612a9c565b90918282813d8311612aeb575b612ada8183611377565b810103126123fa5750519038612878565b503d612ad0565b8093508480929993503d8311612b31575b612b0d8183611377565b810103126123fa578151801515036123fa5750602001519489908990612864612830565b503d612b03565b82513d6000823e3d90fdfea2646970667358221220643d0b25d4f1ac367ea3e2c9ad85e42afc253b6210285efe5ac63ea3126b38c564736f6c63430008100033", + "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;2283:20:2;;1583:1980;;;;-1:-1:-1;;;;;1583:1980:2;;2283:20;;;;;;;1583:1980;2283:20;;;1583:1980;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::i;:::-;;;;;;;;;2425:10;;1583:1980;2437:15;1583:1980;;;;;2437:15;;;;-1:-1:-1;;1583:1980:2;;-1:-1:-1;;;2616:33:2;;-1:-1:-1;;;;;1583:1980:2;;;;2616:33;;1583:1980;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;2616:33;1583:1980;-1:-1:-1;;;;;1583:1980:2;;2616:33;;;;;;;1583:1980;2616:33;;;2420:136;1583:1980;;;:::i;:::-;;8351:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8400:24:1;;1583:1980:2;;;;;;;;;;;8400:24:1;;;;;;;1583:1980:2;8400:24:1;;;2420:136:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8460:30:1;;1583:1980:2;;;;;;;;;;;8460:30:1;;;;;;;1583:1980:2;8460:30:1;;;2420:136:2;-1:-1:-1;8587:18:1;;1583:1980:2;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8634:70:1;;1583:1980:2;;;;;;;;;;;;;;;;;8634:70:1;;;;;;;1583:1980:2;8634:70:1;;;2420:136:2;1583:1980;;;;;;;;8784:18:1;;;;:25;1583:1980:2;8784:25:1;;;8827:27;1583:1980:2;8827:27:1;;1583:1980:2;8873:28:1;1583:1980:2;8873:28:1;;1583:1980:2;8915:23:1;;;;;1583:1980:2;;;;;;;8957:28:1;;1583:1980:2;;9000:24:1;;;;1583:1980:2;9048:33:1;1583:1980:2;9048:33:1;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9104:54:1;;1583:1980:2;;;;;;;9104:54:1;;1583:1980:2;9104:54:1;;;;;;;1583:1980:2;9104:54:1;;;2420:136:2;1583:1980;;;;;8915:23:1;1583:1980:2;;:::i;:::-;8915:23:1;1583:1980:2;;;8915:23:1;8542:623;;1583:1980:2;;;8915:23:1;8542:623;;1583:1980:2;;8915:23:1;8542:623;;1583:1980:2;8915:23:1;8542:623;;;1583:1980:2;;8915:23:1;8542:623;;1583:1980:2;9000:24:1;8915:23;8542:623;;1583:1980:2;;8915:23:1;8542:623;;1583:1980:2;8542:623:1;8915:23;8542:623;;1583:1980:2;8542:623:1;8915:23;8542:623;;1583:1980:2;8542:623:1;8915:23;8542:623;;1583:1980:2;;9267:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1583:1980:2;9367:3:1;1583:1980:2;9267:25:1;;9333;1583:1980:2;;;;;9329:36:1;;;;1583:1980:2;9392:71:1;1583:1980:2;9425:28:1;9367:3;1583:1980:2;;;;9425:28:1;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;1583:1980:2;;;9380:83:1;;:::i;:::-;;;1583:1980:2;;;9380:83:1;;:::i;:::-;;9367:3;:::i;:::-;9316:11;;9329:36;;;;1583:1980:2;9575:26:1;;1583:1980:2;9636:32:1;1583:1980:2;9636:32:1;;1583:1980:2;9703:32:1;1583:1980:2;9703:32:1;;1583:1980:2;9756:18:1;1583:1980:2;8915:23:1;9756:18;;1583:1980:2;;;;;;;;;;;;9801:32:1;;1583:1980:2;;;;;;;9801:32:1;;1583:1980:2;;;;;;;;;;;;9801:32:1;;;;;;;1583:1980:2;9801:32:1;;;9311:159;9886:16;9000:24;9886:16;;1583:1980:2;9925:20:1;1583:1980:2;9925:20:1;;1583:1980:2;9977:29:1;8542:623;9977:29;;1583:1980:2;10029:20:1;8542:623;10029:20;;1583:1980:2;10081:29:1;1583:1980:2;8542:623:1;10081:29;;1583:1980:2;10140:27:1;;1583:1980:2;;;;;;;;:::i;:::-;8915:23:1;1583:1980:2;;;;9489:687:1;;1583:1980:2;;9489:687:1;;1583:1980:2;;9489:687:1;;1583:1980:2;8915:23:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9000:24:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9489:687:1;;;1583:1980:2;;;;;;;:::i;:::-;;;;2575:173;;1583:1980;;;;2575:173;;1583:1980;;;;;;;;;8915:23:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8542:623:1;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;9801:32:1;;;;1583:1980:2;9801:32:1;;1583:1980:2;9801:32:1;;;;;;1583:1980:2;9801:32:1;;;:::i;:::-;;;1583:1980:2;;;;;9801:32:1;;;;;;;-1:-1:-1;9801:32:1;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;1583:1980:2;9104:54:1;;1583:1980:2;9104:54:1;;;;;;1583:1980:2;9104:54:1;;;:::i;:::-;;;1583:1980:2;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;1583:1980:2;;;;;;;;;;;;8634:70:1;;;1583:1980:2;8634:70:1;;1583:1980:2;8634:70:1;;;;;;1583:1980:2;8634:70:1;;;:::i;:::-;;;1583:1980:2;;;;;8634:70:1;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;1583:1980:2;8460:30:1;;1583:1980:2;8460:30:1;;;;;;1583:1980:2;8460:30:1;;;:::i;:::-;;;1583:1980:2;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;1583:1980:2;8400:24:1;;1583:1980:2;8400:24:1;;;;;;1583:1980:2;8400:24:1;;;:::i;:::-;;;1583:1980:2;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;2616:33:2;;;;1583:1980;2616:33;;1583:1980;2616:33;;;;;;1583:1980;2616:33;;;:::i;:::-;;;1583:1980;;;;;2616:33;;;;;;;-1:-1:-1;2616:33:2;;2454:3;1583:1980;;;;;;;;;;;;;;;;;;;;2479:70;1583:1980;;;;;;;;;;;;;;;;;;;:::i;:::-;2479:70;;;:::i;:::-;2467:82;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1583:1980:2;;;;;;2425:10;;1583:1980;;;;;:::i;:::-;;;;;;;;;;2283:20;;;1583:1980;2283:20;;1583:1980;2283:20;;;;;;1583:1980;2283:20;;;:::i;:::-;;;1583:1980;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;2283:20;;;;;;-1:-1:-1;2283:20:2;;1583:1980;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;8351:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8400:24:1;;1583:1980:2;;;;8400:24:1;;1583:1980:2;;;;;;;;8400:24:1;;;;;;;1583:1980:2;8400:24:1;;;1583:1980:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8460:30:1;;1583:1980:2;8400:24:1;;1583:1980:2;;;;;;;;8460:30:1;;;;;;;1583:1980:2;8460:30:1;;;1583:1980:2;-1:-1:-1;8587:18:1;;1583:1980:2;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8634:70:1;;1583:1980:2;;;;;;;;;;;;8400:24:1;1583:1980:2;;;;8634:70:1;;;;;;;1583:1980:2;8634:70:1;;;1583:1980:2;;;;;;;;;8784:18:1;;;;:25;1583:1980:2;8784:25:1;;;8827:27;1583:1980:2;8827:27:1;;1583:1980:2;8873:28:1;1583:1980:2;8873:28:1;;1583:1980:2;8915:23:1;;;;;1583:1980:2;;;;;;;8957:28:1;;1583:1980:2;;9000:24:1;;;;1583:1980:2;9048:33:1;8400:24;9048:33;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9104:54:1;;1583:1980:2;;;;;;;9104:54:1;;1583:1980:2;9104:54:1;;;;;;;1583:1980:2;9104:54:1;;;1583:1980:2;;;;;;;;;:::i;:::-;;;;8400:24:1;1583:1980:2;8542:623:1;;1583:1980:2;;;;8542:623:1;;1583:1980:2;;;8542:623:1;;1583:1980:2;8915:23:1;1583:1980:2;8542:623:1;;1583:1980:2;;8542:623:1;;;1583:1980:2;9000:24:1;1583:1980:2;8542:623:1;;1583:1980:2;;;8542:623:1;;1583:1980:2;8542:623:1;1583:1980:2;8542:623:1;;1583:1980:2;8542:623:1;1583:1980:2;8542:623:1;;1583:1980:2;8542:623:1;1583:1980:2;8542:623:1;;1583:1980:2;;9267:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1583:1980:2;9367:3:1;1583:1980:2;9267:25:1;;9333;1583:1980:2;;;;;9329:36:1;;;;1583:1980:2;9392:71:1;1583:1980:2;9425:28:1;9367:3;1583:1980:2;;;;9425:28:1;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;1583:1980:2;;;9380:83:1;;:::i;:::-;;;1583:1980:2;;;9380:83:1;;:::i;9367:3::-;9316:11;;9329:36;-1:-1:-1;;8400:24:1;9575:26;;;1583:1980:2;;9636:32:1;;;1583:1980:2;;9703:32:1;;1583:1980:2;8915:23:1;9756:18;;1583:1980:2;;;-1:-1:-1;;;9801:32:1;;-1:-1:-1;;;;;1583:1980:2;;;;9801:32:1;;1583:1980:2;;;;;;;;;;;;;9575:26:1;;1583:1980:2;;8400:24:1;1583:1980:2;;;;;;;9801:32:1;;-1:-1:-1;;;;;1583:1980:2;9801:32:1;;;;;;;1583:1980:2;9801:32:1;;;9311:159;1583:1980:2;9886:16:1;;9000:24;9886:16;;1583:1980:2;9925:20:1;1583:1980:2;9925:20:1;;1583:1980:2;9977:29:1;8542:623;9977:29;;1583:1980:2;10029:20:1;8542:623;10029:20;;1583:1980:2;10081:29:1;1583:1980:2;8542:623:1;10081:29;;1583:1980:2;10140:27:1;;1583:1980:2;;;;;;;;:::i;:::-;;;;;8400:24:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;;9489:687:1;;1583:1980:2;8915:23:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9000:24:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9489:687:1;;;1583:1980:2;;;;;;8400:24:1;1583:1980:2;;8400:24:1;1583:1980:2;;;;:::i;9801:32:1:-;;;8400:24;9801:32;;8400:24;9801:32;;;;;;8400:24;9801:32;;;:::i;:::-;;;1583:1980:2;;;;;;;9801:32:1;;;;;;-1:-1:-1;9801:32:1;;1583:1980:2;8400:24:1;1583:1980:2;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;8400:24;9104:54;;8400:24;9104:54;;;;;;8400:24;9104:54;;;:::i;:::-;;;1583:1980:2;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;8634:70;;;8400:24;8634:70;;8400:24;8634:70;;;;;;8400:24;8634:70;;;:::i;:::-;;;1583:1980:2;;;;;8634:70:1;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;8400:24;8460:30;;8400:24;8460:30;;;;;;8400:24;8460:30;;;:::i;:::-;;;1583:1980:2;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;1583:1980:2;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18:1;;1583:1980:2;;;;4218:18:1;;;;;;;;;;;:::o;6145:2007::-;;;-1:-1:-1;1583:1980:2;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6236:17:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6236:17:1;;;;;;-1:-1:-1;1583:1980:2;6236:17:1;;;6145:2007;1583:1980:2;;;;;;;6279:17:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;;6145:2007;1583:1980:2;;;;;;;6331:26:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;;6145:2007;1583:1980:2;;;;;;;6380:21:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6433:26:1;;6145:2007;6236:15;1583:1980:2;;;;6236:17:1;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;6433:26:1;;;;;;;-1:-1:-1;6433:26:1;;;6145:2007;1583:1980:2;;;;;;;6496:31:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;;6145:2007;1583:1980:2;;;;;;;6564:31:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;;6145:2007;1583:1980:2;;;;;;;6626:25:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;;6145:2007;1583:1980:2;;;;;;;6676:22:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;;6145:2007;1583:1980:2;;;;;;;6723:19:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;;6145:2007;1583:1980:2;;;;;;;6767:19:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;;6145:2007;1583:1980:2;;;;;;;6831:19:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6883:32:1;;6236:17;6883:32;;1583:1980:2;;;6145:2007:1;6236:15;1583:1980:2;;;;;;;;-1:-1:-1;;;;;1583:1980:2;6883:32:1;;;;;;-1:-1:-1;1583:1980:2;6883:32:1;;;6145:2007;1583:1980:2;;;;;;;6948:32:1;;6236:17;6948:32;;1583:1980:2;;;;;;;;;;6145:2007:1;6236:15;1583:1980:2;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7070:25:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6236:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7070:25:1;;;;;;;-1:-1:-1;7070:25:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7113:27:1;;1583:1980:2;;6236:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7113:27:1;;;;;;-1:-1:-1;7113:27:1;;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7182:23:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6236:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7182:23:1;;;;;;;-1:-1:-1;7182:23:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7257:34:1;;-1:-1:-1;;;;;1583:1980:2;;;6236:17:1;7257:34;;1583:1980:2;6145:2007:1;6236:15;1583:1980:2;;;;;;;;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;;6145:2007;-1:-1:-1;1583:1980:2;;;7315:42:1;;;-1:-1:-1;;;7315:42:1;;;6145:2007;6236:15;7315:42;;-1:-1:-1;;;;;1583:1980:2;;;6236:17:1;7315:42;;;1583:1980:2;7315:42:1;;1583:1980:2;;;;7315:42:1;;1583:1980:2;;7315:42:1;;;1583:1980:2;7315:42:1;;;;-1:-1:-1;7315:42:1;1583:1980:2;7315:42:1;;;6145:2007;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;;;;7016:348:1;;1583:1980:2;7113:27:1;1583:1980:2;;;7016:348:1;;1583:1980:2;;;7016:348:1;;1583:1980:2;;;7016:348:1;;1583:1980:2;;;;;;;;;7016:348:1;;1583:1980:2;6145:2007:1;1583:1980:2;7016:348:1;;1583:1980:2;;7016:348:1;;;1583:1980:2;;;;6219:34:1;1583:1980:2;;:::i;:::-;;;;;;;;:::i;:::-;;;6219:34:1;1583:1980:2;;;;;;;;6219:34:1;1583:1980:2;;:::i;:::-;;-1:-1:-1;1583:1980:2;;;;;;7448:11:1;;-1:-1:-1;7476:3:1;1583:1980:2;;6219:34:1;1583:1980:2;;;;7461:13:1;;;;7501:24;;7476:3;7501:24;6145:2007;7501:24;;:::i;:::-;7489:36;1583:1980:2;;;7489:36:1;;:::i;:::-;;;1583:1980:2;;;7489:36:1;;:::i;7476:3::-;7448:11;;7461:13;;;;;;;;;;;7866:38;-1:-1:-1;;;;;7775:38:1;6856:59;1583:1980:2;6856:59:1;1583:1980:2;7775:38:1;:::i;:::-;1583:1980:2;;7866:38:1;:::i;:::-;1583:1980:2;;;7970:27:1;1583:1980:2;7970:27:1;;4218:18;1583:1980:2;8063:27:1;;4218:18;1583:1980:2;;;;;;;;:::i;:::-;;;;;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;6145:2007:1;7551:596;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;6145:2007:1;:::o;1583:1980:2:-;;;;;;;;:::i;:::-;;;;;;;;7315:42:1;;;1583:1980:2;7315:42:1;1583:1980:2;7315:42:1;;;;;;1583:1980:2;7315:42:1;;:::i;:::-;1583:1980:2;;;7315:42:1;;;;1583:1980:2;;;;;7315:42:1;;;;;;;;7257:34;;;;1583:1980:2;7257:34:1;;1583:1980:2;7257:34:1;;;;;;1583:1980:2;7257:34:1;;;:::i;:::-;;;1583:1980:2;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7113:27;1583:1980:2;7113:27:1;;1583:1980:2;7113:27:1;;;;;;1583:1980:2;7113:27:1;;;:::i;:::-;;;1583:1980:2;;;;;7113:27:1;;;;;;;;-1:-1:-1;7113:27:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;;;;:::i;:::-;;;;;6948:32;;;;1583:1980:2;6948:32:1;;1583:1980:2;6948:32:1;;;;;;1583:1980:2;6948:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;6883;1583:1980:2;6883:32:1;;1583:1980:2;6883:32:1;;;;;;1583:1980:2;6883:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6883:32:1;;;;;;;-1:-1:-1;6883:32:1;;6831:19;;;;1583:1980:2;6831:19:1;;1583:1980:2;6831:19:1;;;;;;1583:1980:2;6831:19:1;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;6145:2007:1;1583:1980:2;;;;;;;;;;6145:2007:1;1583:1980:2;;;;;;;;:::i;:::-;;;;;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;6767;;;;1583:1980:2;6767:19:1;;1583:1980:2;6767:19:1;;;;;;1583:1980:2;6767:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;6723;;;;1583:1980:2;6723:19:1;;1583:1980:2;6723:19:1;;;;;;1583:1980:2;6723:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;6676:22;;;;1583:1980:2;6676:22:1;;1583:1980:2;6676:22:1;;;;;;1583:1980:2;6676:22:1;;;:::i;:::-;;;1583:1980:2;;;;;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;6626:25;;;;1583:1980:2;6626:25:1;;1583:1980:2;6626:25:1;;;;;;1583:1980:2;6626:25:1;;;:::i;:::-;;;1583:1980:2;;;;;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;6564:31;;;;1583:1980:2;6564:31:1;;1583:1980:2;6564:31:1;;;;;;1583:1980:2;6564:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;6496;;;;1583:1980:2;6496:31:1;;1583:1980:2;6496:31:1;;;;;;1583:1980:2;6496:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;6433:26;;;1583:1980:2;6433:26:1;;1583:1980:2;6433:26:1;;;;;;1583:1980:2;6433:26:1;;;:::i;:::-;;;1583:1980:2;;;;;6433:26:1;;;;;;-1:-1:-1;6433:26:1;;6380:21;;;;1583:1980:2;6380:21:1;;1583:1980:2;6380:21:1;;;;;;1583:1980:2;6380:21:1;;;:::i;:::-;;;1583:1980:2;;;;;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;6331:26;;;;1583:1980:2;6331:26:1;;1583:1980:2;6331:26:1;;;;;;1583:1980:2;6331:26:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;6279:17;;;;1583:1980:2;6279:17:1;;1583:1980:2;6279:17:1;;;;;;1583:1980:2;6279:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;6236;1583:1980:2;6236:17:1;;1583:1980:2;6236:17:1;;;;;;1583:1980:2;6236:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6236:17:1;;;;;;;-1:-1:-1;6236:17:1;;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;10185:782:1:-;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10321:25:1;;1583:1980:2;;;;10321:25:1;;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;;;;;10321:25:1;;1583:1980:2;;;;10321:25:1;;;;;;;-1:-1:-1;10321:25:1;;;10185:782;1583:1980:2;;10409:15:1;;;;1583:1980:2;;;;;;-1:-1:-1;;;;;10452:32:1;10321:25;10452:32;;;;1583:1980:2;;;;;;;;;;;;;;10504:33:1;;;;;;;;;-1:-1:-1;10504:33:1;;;10185:782;10574:35;10321:25;10574:35;;1583:1980:2;10574:35:1;;1583:1980:2;;10638:27:1;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;10681:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10681:29:1;;;10185:782;10742:19;;;;1583:1980:2;;;;;;;;;;;;;;;10727:35:1;;10321:25;10727:35;;1583:1980:2;10727:35:1;;;;;;;;;;-1:-1:-1;10727:35:1;;;10185:782;1583:1980:2;;;10823:19:1;1583:1980:2;10823:19:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;10860:31:1;;;;10321:25;10860:31;-1:-1:-1;10860:31:1;;;;;;;-1:-1:-1;10860:31:1;;;10185:782;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10914:39:1;;1583:1980:2;;10321:25:1;10914:39;;1583:1980:2;;;;;;;10914:39:1;;1583:1980:2;10914:39:1;;;;;;;-1:-1:-1;10914:39:1;;;10185:782;1583:1980:2;;;;;;;;:::i;:::-;;10366:596:1;;1583:1980:2;10366:596:1;;1583:1980:2;10366:596:1;;;1583:1980:2;10452:32:1;10366:596;;1583:1980:2;;10366:596:1;;1583:1980:2;10638:27:1;10366:596;;1583:1980:2;;10366:596:1;;1583:1980:2;10366:596:1;;1583:1980:2;10366:596:1;;;1583:1980:2;10366:596:1;;;1583:1980:2;10185:782:1;:::o;10914:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;10914:39:1;;;;1583:1980:2;;;10914:39:1;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10860:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10727:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;10727:35:1;;;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10681:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10504:33;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;10321:25:1;10504:33;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10321:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10321:25:1;;;;;;;;;10971:925;;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11271:63:1;;-1:-1:-1;;;;;1583:1980:2;;;11271:63:1;;;1583:1980:2;;;;;;;;;;;;;;;11271:63:1;1583:1980:2;;;;11271:63:1;;;;;;;-1:-1:-1;11271:63:1;;;10971:925;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11353:57:1;;-1:-1:-1;;;;;1583:1980:2;;;11271:63:1;11353:57;;1583:1980:2;;;;;;;;;11271:63:1;;1583:1980:2;;;;;;11353:57:1;;;;;;;-1:-1:-1;11353:57:1;;;10971:925;-1:-1:-1;11271:63:1;11438:22;;1583:1980:2;;11480:14:1;;;1583:1980:2;11531:31:1;;;1583:1980:2;;11591:23:1;;1583:1980:2;11630:10:1;;;;11657:11;;;1583:1980:2;;11689:15:1;;1583:1980:2;11725:15:1;;;1583:1980:2;11758:12:1;;;;11793:17;;;1583:1980:2;;;;;-1:-1:-1;;;11835:47:1;;-1:-1:-1;;;;;1583:1980:2;;;11271:63:1;11835:47;;1583:1980:2;;11758:12:1;;1583:1980:2;;;;;;;;;;11630:10:1;;1583:1980:2;;;;;11835:47:1;;1583:1980:2;11835:47:1;11271:63;11835:47;;;;;;;-1:-1:-1;11835:47:1;;;10971:925;1583:1980:2;;;;;;;;:::i;:::-;;;11271:63:1;11170:721;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;11170:721:1;;1583:1980:2;11630:10:1;11170:721;;1583:1980:2;11531:31:1;11170:721;;1583:1980:2;;11170:721:1;;1583:1980:2;11657:11:1;11170:721;;1583:1980:2;;11170:721:1;;1583:1980:2;11725:15:1;11170:721;;1583:1980:2;11758:12:1;11170:721;;1583:1980:2;11793:17:1;11170:721;;1583:1980:2;11170:721:1;;;1583:1980:2;11170:721:1;;;1583:1980:2;11170:721:1;;;1583:1980:2;10971:925:1;:::o;11835:47::-;;;11271:63;11835:47;;11271:63;11835:47;;;;;;11271:63;11835:47;;;:::i;:::-;;;1583:1980:2;;;;;;11835:47:1;;;;;;;-1:-1:-1;11835:47:1;;11353:57;;11271:63;11353:57;;11271:63;11353:57;;;;;;11271:63;11353:57;;;:::i;:::-;;;1583:1980:2;;;;;;;;:::i;:::-;11353:57:1;;;;;;-1:-1:-1;11353:57:1;;11271:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;11271:63:1;;;;;;-1:-1:-1;11271:63:1;;1583:1980:2;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2757:804::-;;;;;;1583:1980;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:36;;;;;;;1583:1980;;3056:36;;;;;;;1583:1980;;;;-1:-1:-1;3056:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3181:34:2;;-1:-1:-1;;;;;1583:1980:2;;;3181:34;;;1583:1980;;;;;;;;;;;;;;;;;;;;;;3181:34;;;;;;;;;;;-1:-1:-1;3181:34:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3234:25:2;;1583:1980;;;3234:25;;;1583:1980;;;;3234:25;1583:1980;;;3234:25;;;;;;;;-1:-1:-1;3234:25:2;;;2757:804;1583:1980;;-1:-1:-1;;;3288:35:2;;;;;1583:1980;;;;-1:-1:-1;3288:35:2;1583:1980;3288:35;1583:1980;3288:35;1583:1980;3288:35;-1:-1:-1;3288:35:2;;;;;;;-1:-1:-1;3288:35:2;;;2757:804;1583:1980;;;;;;;;;;3348:36;;;1583:1980;3348:36;;;;;1583:1980;3348:36;-1:-1:-1;3348:36:2;;;;;;;;;;;;-1:-1:-1;3348:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3452:28:2;;1583:1980;;;;;;;-1:-1:-1;;3452:28:2;;;;;;;-1:-1:-1;3452:28:2;;;2757:804;3515:31;;;1583:1980;3515:31;;;;;;;;;1583:1980;;;;;;;;;;;;;3497:50;;;;1583:1980;;;;;;:::i;:::-;3497:50;1583:1980;;3497:50;;;;;;;-1:-1:-1;3497:50:2;;;2757:804;1583:1980;;;;;;;:::i;:::-;;;3112:444;;1583:1980;3112:444;;1583:1980;3112:444;;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;2757:804;:::o;3497:50::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3497:50;;;;;;;;;3452:28;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;-1:-1:-1;1583:1980:2;;;3452:28;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;;3348:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;3348:36;;;;;;;;;;;3288:35;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3288:35;;;1583:1980;;;;3288:35;;;;;3234:25;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3234:25;;;1583:1980;;;;3234:25;;;;;3181:34;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3181:34;;;;;;;;;3056:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;3181:34;3056:36;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;", + "linkReferences": {} + }, + "methodIdentifiers": { + "cTokenMetadata(address,address,(address,string),address,address)": "a72b45e0", + "collateralInfo(address,uint8)": "cbe293fa", + "collateralInfoWithAccount(address,(address,uint256,uint256,string,uint256,uint256,uint256,address,uint256,string,uint256),address)": "c2815c0b", + "getMigratorData(address,address,(address,string)[],address,address)": "61d11a6e", + "query(address)": "d4fc9fc6", + "queryWithAccount(address,address,address)": "5346cc19" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest\",\"name\":\"cTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest[]\",\"name\":\"cTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"}],\"internalType\":\"struct CompoundV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.16+commit.07a7930e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract PriceOracle", + "name": "priceOracle", + "type": "address" + }, + { + "internalType": "struct CompoundV2Query.CTokenRequest", + "name": "cTokenRequest", + "type": "tuple", + "components": [ + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + }, + { + "internalType": "string", + "name": "priceOracleSymbol", + "type": "string" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "cTokenMetadata", + "outputs": [ + { + "internalType": "struct CompoundV2Query.CTokenMetadata", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralInfo", + "outputs": [ + { + "internalType": "struct CometQuery.CollateralAsset", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "struct CometQuery.CollateralAsset", + "name": "asset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "collateralInfoWithAccount", + "outputs": [ + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "contract Comptroller", + "name": "comptroller", + "type": "address" + }, + { + "internalType": "contract Comet", + "name": "comet", + "type": "address" + }, + { + "internalType": "struct CompoundV2Query.CTokenRequest[]", + "name": "cTokens", + "type": "tuple[]", + "components": [ + { + "internalType": "contract CToken", + "name": "cToken", + "type": "address" + }, + { + "internalType": "string", + "name": "priceOracleSymbol", + "type": "string" + } + ] + }, + { + "internalType": "address payable", + "name": "account", + "type": "address" + }, + { + "internalType": "address payable", + "name": "spender", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "getMigratorData", + "outputs": [ + { + "internalType": "struct CompoundV2Query.QueryResponse", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "migratorEnabled", + "type": "uint256" + }, + { + "internalType": "struct CompoundV2Query.CTokenMetadata[]", + "name": "tokens", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "cToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceUnderlying", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exchangeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + } + ] + }, + { + "internalType": "struct CometQuery.CometStateWithAccountState", + "name": "cometState", + "type": "tuple", + "components": [ + { + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "baseMinForRewards", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingBorrowSpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseTrackingSupplySpeed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bulkerAllowance", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", + "type": "uint256" + } + ] + } + ] } - ], - "internalType": "struct CompoundV2Query.CTokenMetadata[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": { - "object": "0x608060405234801561001057600080fd5b5061084e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630637ff4b1461003b578063bc3b500514610064575b600080fd5b61004e61004936600461056b565b610084565b60405161005b9190610671565b60405180910390f35b6100776100723660046106c0565b6101bf565b60405161005b9190610723565b60606000866001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610738565b90508460008167ffffffffffffffff8111156101085761010861075c565b60405190808252806020026020018201604052801561014157816020015b61012e610505565b8152602001906001900390816101265790505b50905060005b828110156101b2576101828a858b8b8581811061016657610166610772565b905060200201602081019061017b9190610788565b8a8a6101bf565b82828151811061019457610194610772565b602002602001018190525080806101aa906107a5565b915050610147565b5098975050505050505050565b6101c7610505565b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190881690638e8f294b906024016040805180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906107cc565b60408051610100810182526001600160a01b038981168083529251636eb1769f60e11b8152898216600482015290881660248201529294509250602083019163dd62ed3e90604401602060405180830381865afa158015610299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bd91906107ff565b81526040516370a0823160e01b81526001600160a01b0387811660048301526020909201918816906370a0823190602401602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906107ff565b8152604051633af9e66960e01b81526001600160a01b038781166004830152602090920191881690633af9e669906024016020604051808303816000875af115801561037f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a391906107ff565b81526040516305eff7ef60e21b81526001600160a01b0387811660048301526020909201918816906317bfdfbc906024016020604051808303816000875af11580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041791906107ff565b8152602001828152602001866001600160a01b031663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048691906107ff565b815260405163fc57d4df60e01b81526001600160a01b03888116600483015260209092019189169063fc57d4df90602401602060405180830381865afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f891906107ff565b9052979650505050505050565b60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461056857600080fd5b50565b60008060008060006080868803121561058357600080fd5b853561058e81610553565b9450602086013567ffffffffffffffff808211156105ab57600080fd5b818801915088601f8301126105bf57600080fd5b8135818111156105ce57600080fd5b8960208260051b85010111156105e357600080fd5b60208301965080955050505060408601356105fd81610553565b9150606086013561060d81610553565b809150509295509295909350565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6020808252825182820181905260009190848201906040850190845b818110156106b4576106a083855161061b565b92840192610100929092019160010161068d565b50909695505050505050565b600080600080600060a086880312156106d857600080fd5b85356106e381610553565b945060208601356106f381610553565b9350604086013561070381610553565b9250606086013561071381610553565b9150608086013561060d81610553565b6101008101610732828461061b565b92915050565b60006020828403121561074a57600080fd5b815161075581610553565b9392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561079a57600080fd5b813561075581610553565b6000600182016107c557634e487b7160e01b600052601160045260246000fd5b5060010190565b600080604083850312156107df57600080fd5b825180151581146107ef57600080fd5b6020939093015192949293505050565b60006020828403121561081157600080fd5b505191905056fea264697066735822122009fc22fd8f6355dd50cbac4254b5d2907c50dc4b2d1bc8c8d4cec48783688d0f64736f6c63430008100033", - "sourceMap": "1509:1470:0:-:0;;;;;;;;;;;;;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630637ff4b1461003b578063bc3b500514610064575b600080fd5b61004e61004936600461056b565b610084565b60405161005b9190610671565b60405180910390f35b6100776100723660046106c0565b6101bf565b60405161005b9190610723565b60606000866001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ea9190610738565b90508460008167ffffffffffffffff8111156101085761010861075c565b60405190808252806020026020018201604052801561014157816020015b61012e610505565b8152602001906001900390816101265790505b50905060005b828110156101b2576101828a858b8b8581811061016657610166610772565b905060200201602081019061017b9190610788565b8a8a6101bf565b82828151811061019457610194610772565b602002602001018190525080806101aa906107a5565b915050610147565b5098975050505050505050565b6101c7610505565b604051638e8f294b60e01b81526001600160a01b03858116600483015260009190881690638e8f294b906024016040805180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906107cc565b60408051610100810182526001600160a01b038981168083529251636eb1769f60e11b8152898216600482015290881660248201529294509250602083019163dd62ed3e90604401602060405180830381865afa158015610299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bd91906107ff565b81526040516370a0823160e01b81526001600160a01b0387811660048301526020909201918816906370a0823190602401602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906107ff565b8152604051633af9e66960e01b81526001600160a01b038781166004830152602090920191881690633af9e669906024016020604051808303816000875af115801561037f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a391906107ff565b81526040516305eff7ef60e21b81526001600160a01b0387811660048301526020909201918816906317bfdfbc906024016020604051808303816000875af11580156103f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041791906107ff565b8152602001828152602001866001600160a01b031663bd6d894d6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048691906107ff565b815260405163fc57d4df60e01b81526001600160a01b03888116600483015260209092019189169063fc57d4df90602401602060405180830381865afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f891906107ff565b9052979650505050505050565b60405180610100016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461056857600080fd5b50565b60008060008060006080868803121561058357600080fd5b853561058e81610553565b9450602086013567ffffffffffffffff808211156105ab57600080fd5b818801915088601f8301126105bf57600080fd5b8135818111156105ce57600080fd5b8960208260051b85010111156105e357600080fd5b60208301965080955050505060408601356105fd81610553565b9150606086013561060d81610553565b809150509295509295909350565b60018060a01b0381511682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6020808252825182820181905260009190848201906040850190845b818110156106b4576106a083855161061b565b92840192610100929092019160010161068d565b50909695505050505050565b600080600080600060a086880312156106d857600080fd5b85356106e381610553565b945060208601356106f381610553565b9350604086013561070381610553565b9250606086013561071381610553565b9150608086013561060d81610553565b6101008101610732828461061b565b92915050565b60006020828403121561074a57600080fd5b815161075581610553565b9392505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561079a57600080fd5b813561075581610553565b6000600182016107c557634e487b7160e01b600052601160045260246000fd5b5060010190565b600080604083850312156107df57600080fd5b825180151581146107ef57600080fd5b6020939093015192949293505050565b60006020828403121561081157600080fd5b505191905056fea264697066735822122009fc22fd8f6355dd50cbac4254b5d2907c50dc4b2d1bc8c8d4cec48783688d0f64736f6c63430008100033", - "sourceMap": "1509:1470:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1745:499;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2248:729;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1745:499::-;1900:23;1931;1957:11;-1:-1:-1;;;;;1957:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1931:46;-1:-1:-1;2002:7:0;1983:16;2002:7;2052:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2022:63;;2096:6;2091:133;2112:11;2108:1;:15;2091:133;;;2147:70;2162:11;2175;2188:7;;2196:1;2188:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2200:7;2209;2147:14;:70::i;:::-;2138:3;2142:1;2138:6;;;;;;;;:::i;:::-;;;;;;:79;;;;2125:3;;;;;:::i;:::-;;;;2091:133;;;-1:-1:-1;2236:3:0;1745:499;-1:-1:-1;;;;;;;;1745:499:0:o;2248:729::-;2427:21;;:::i;:::-;2484:36;;-1:-1:-1;;;2484:36:0;;-1:-1:-1;;;;;4991:32:1;;;2484:36:0;;;4973:51:1;2459:21:0;;2484:19;;;;;;4946:18:1;;2484:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;;;;;;;-1:-1:-1;;;;;2540:432:0;;;;;;2609:34;;-1:-1:-1;;;2609:34:0;;5624:15:1;;;2609:34:0;;;5606::1;5676:15;;;5656:18;;;5649:43;2456:64:0;;-1:-1:-1;2540:432:0;-1:-1:-1;2540:432:0;;;;2609:16;;5541:18:1;;2609:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2662:25;;-1:-1:-1;;;2662:25:0;;-1:-1:-1;;;;;4991:32:1;;;2662:25:0;;;4973:51:1;2540:432:0;;;;;2662:16;;;;;4946:18:1;;2662:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2716:35;;-1:-1:-1;;;2716:35:0;;-1:-1:-1;;;;;4991:32:1;;;2716:35:0;;;4973:51:1;2540:432:0;;;;;2716:26;;;;;4946:18:1;;2716:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2776:36;;-1:-1:-1;;;2776:36:0;;-1:-1:-1;;;;;4991:32:1;;;2776:36:0;;;4973:51:1;2540:432:0;;;;;2776:27;;;;;4946:18:1;;2776:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;;;2840:16;2540:432;;;;2880:6;-1:-1:-1;;;;;2880:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2925:38;;-1:-1:-1;;;2925:38:0;;-1:-1:-1;;;;;4991:32:1;;;2925:38:0;;;4973:51:1;2540:432:0;;;;;2925:30;;;;;4946:18:1;;2925:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2540:432;;2527:445;2248:729;-1:-1:-1;;;;;;;2248:729:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:144:1:-;-1:-1:-1;;;;;102:31:1;;92:42;;82:70;;148:1;145;138:12;82:70;14:144;:::o;163:1120::-;324:6;332;340;348;356;409:3;397:9;388:7;384:23;380:33;377:53;;;426:1;423;416:12;377:53;465:9;452:23;484:44;522:5;484:44;:::i;:::-;547:5;-1:-1:-1;603:2:1;588:18;;575:32;626:18;656:14;;;653:34;;;683:1;680;673:12;653:34;721:6;710:9;706:22;696:32;;766:7;759:4;755:2;751:13;747:27;737:55;;788:1;785;778:12;737:55;828:2;815:16;854:2;846:6;843:14;840:34;;;870:1;867;860:12;840:34;923:7;918:2;908:6;905:1;901:14;897:2;893:23;889:32;886:45;883:65;;;944:1;941;934:12;883:65;975:2;971;967:11;957:21;;997:6;987:16;;;;;1055:2;1044:9;1040:18;1027:32;1068:46;1106:7;1068:46;:::i;:::-;1133:7;-1:-1:-1;1192:2:1;1177:18;;1164:32;1205:46;1164:32;1205:46;:::i;:::-;1270:7;1260:17;;;163:1120;;;;;;;;:::o;1288:517::-;1403:1;1399;1394:3;1390:11;1386:19;1378:5;1372:12;1368:38;1363:3;1356:51;1456:4;1449:5;1445:16;1439:23;1432:4;1427:3;1423:14;1416:47;1512:4;1505:5;1501:16;1495:23;1488:4;1483:3;1479:14;1472:47;1568:4;1561:5;1557:16;1551:23;1544:4;1539:3;1535:14;1528:47;1624:4;1617:5;1613:16;1607:23;1600:4;1595:3;1591:14;1584:47;1680:4;1673:5;1669:16;1663:23;1656:4;1651:3;1647:14;1640:47;1736:4;1729:5;1725:16;1719:23;1712:4;1707:3;1703:14;1696:47;1792:4;1785:5;1781:16;1775:23;1768:4;1763:3;1759:14;1752:47;;;1288:517::o;1810:724::-;2043:2;2095:21;;;2165:13;;2068:18;;;2187:22;;;2014:4;;2043:2;2266:15;;;;2240:2;2225:18;;;2014:4;2309:199;2323:6;2320:1;2317:13;2309:199;;;2372:52;2420:3;2411:6;2405:13;2372:52;:::i;:::-;2483:15;;;;2453:6;2444:16;;;;;2345:1;2338:9;2309:199;;;-1:-1:-1;2525:3:1;;1810:724;-1:-1:-1;;;;;;1810:724:1:o;2539:945::-;2701:6;2709;2717;2725;2733;2786:3;2774:9;2765:7;2761:23;2757:33;2754:53;;;2803:1;2800;2793:12;2754:53;2842:9;2829:23;2861:44;2899:5;2861:44;:::i;:::-;2924:5;-1:-1:-1;2981:2:1;2966:18;;2953:32;2994:46;2953:32;2994:46;:::i;:::-;3059:7;-1:-1:-1;3118:2:1;3103:18;;3090:32;3131:46;3090:32;3131:46;:::i;:::-;3196:7;-1:-1:-1;3255:2:1;3240:18;;3227:32;3268:46;3227:32;3268:46;:::i;:::-;3333:7;-1:-1:-1;3392:3:1;3377:19;;3364:33;3406:46;3364:33;3406:46;:::i;3489:266::-;3685:3;3670:19;;3698:51;3674:9;3731:6;3698:51;:::i;:::-;3489:266;;;;:::o;3760:283::-;3849:6;3902:2;3890:9;3881:7;3877:23;3873:32;3870:52;;;3918:1;3915;3908:12;3870:52;3950:9;3944:16;3969:44;4007:5;3969:44;:::i;:::-;4032:5;3760:283;-1:-1:-1;;;3760:283:1:o;4048:127::-;4109:10;4104:3;4100:20;4097:1;4090:31;4140:4;4137:1;4130:15;4164:4;4161:1;4154:15;4180:127;4241:10;4236:3;4232:20;4229:1;4222:31;4272:4;4269:1;4262:15;4296:4;4293:1;4286:15;4312:273;4384:6;4437:2;4425:9;4416:7;4412:23;4408:32;4405:52;;;4453:1;4450;4443:12;4405:52;4492:9;4479:23;4511:44;4549:5;4511:44;:::i;4590:232::-;4629:3;4650:17;;;4647:140;;4709:10;4704:3;4700:20;4697:1;4690:31;4744:4;4741:1;4734:15;4772:4;4769:1;4762:15;4647:140;-1:-1:-1;4814:1:1;4803:13;;4590:232::o;5035:338::-;5111:6;5119;5172:2;5160:9;5151:7;5147:23;5143:32;5140:52;;;5188:1;5185;5178:12;5140:52;5220:9;5214:16;5273:5;5266:13;5259:21;5252:5;5249:32;5239:60;;5295:1;5292;5285:12;5239:60;5363:2;5348:18;;;;5342:25;5318:5;;5342:25;;-1:-1:-1;;;5035:338:1:o;5703:184::-;5773:6;5826:2;5814:9;5805:7;5801:23;5797:32;5794:52;;;5842:1;5839;5832:12;5794:52;-1:-1:-1;5865:16:1;;5703:184;-1:-1:-1;5703:184:1:o", - "linkReferences": {} - }, - "methodIdentifiers": { - "cTokenMetadata(address,address,address,address,address)": "bc3b5005", - "query(address,address[],address,address)": "0637ff4b" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract CToken[]\",\"name\":\"cTokens\",\"type\":\"address[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ + ] + }, { "inputs": [ { - "internalType": "contract Comptroller", - "name": "comptroller", - "type": "address" - }, - { - "internalType": "contract PriceOracle", - "name": "priceOracle", - "type": "address" - }, - { - "internalType": "contract CToken", - "name": "cToken", - "type": "address" - }, - { - "internalType": "address payable", - "name": "account", - "type": "address" - }, - { - "internalType": "address payable", - "name": "spender", + "internalType": "contract Comet", + "name": "comet", "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "name": "cTokenMetadata", + "name": "query", "outputs": [ { - "internalType": "struct CompoundV2Query.CTokenMetadata", + "internalType": "struct CometQuery.CometState", "name": "", "type": "tuple", "components": [ { - "internalType": "address", - "name": "cToken", - "type": "address" + "internalType": "struct CometQuery.BaseAsset", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + } + ] }, { "internalType": "uint256", - "name": "allowance", + "name": "baseMinForRewards", "type": "uint256" }, { "internalType": "uint256", - "name": "balance", + "name": "baseTrackingBorrowSpeed", "type": "uint256" }, { "internalType": "uint256", - "name": "balanceUnderlying", + "name": "baseTrackingSupplySpeed", "type": "uint256" }, { "internalType": "uint256", - "name": "borrowBalance", + "name": "borrowAPR", + "type": "uint256" + }, + { + "internalType": "struct CometQuery.CollateralAsset[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + } + ] + }, + { + "internalType": "uint256", + "name": "earnAPR", "type": "uint256" }, { "internalType": "uint256", - "name": "collateralFactor", + "name": "totalBorrow", "type": "uint256" }, { "internalType": "uint256", - "name": "exchangeRate", + "name": "totalBorrowPrincipal", "type": "uint256" }, { "internalType": "uint256", - "name": "price", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", "type": "uint256" } ] @@ -264,15 +1891,10 @@ { "inputs": [ { - "internalType": "contract Comptroller", - "name": "comptroller", + "internalType": "contract Comet", + "name": "comet", "type": "address" }, - { - "internalType": "contract CToken[]", - "name": "cTokens", - "type": "address[]" - }, { "internalType": "address payable", "name": "account", @@ -280,57 +1902,211 @@ }, { "internalType": "address payable", - "name": "spender", + "name": "bulker", "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", - "name": "query", + "name": "queryWithAccount", "outputs": [ { - "internalType": "struct CompoundV2Query.CTokenMetadata[]", + "internalType": "struct CometQuery.CometStateWithAccountState", "name": "", - "type": "tuple[]", + "type": "tuple", "components": [ { - "internalType": "address", - "name": "cToken", - "type": "address" + "internalType": "struct CometQuery.BaseAssetWithAccountState", + "name": "baseAsset", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "baseAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balanceOfComet", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minBorrow", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] }, { "internalType": "uint256", - "name": "allowance", + "name": "baseMinForRewards", "type": "uint256" }, { "internalType": "uint256", - "name": "balance", + "name": "baseTrackingBorrowSpeed", "type": "uint256" }, { "internalType": "uint256", - "name": "balanceUnderlying", + "name": "baseTrackingSupplySpeed", "type": "uint256" }, { "internalType": "uint256", - "name": "borrowBalance", + "name": "borrowAPR", "type": "uint256" }, { "internalType": "uint256", - "name": "collateralFactor", + "name": "bulkerAllowance", "type": "uint256" }, + { + "internalType": "struct CometQuery.CollateralAssetWithAccountState[]", + "name": "collateralAssets", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "collateralAsset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "collateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "decimals", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "liquidateCollateralFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "liquidationFactor", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "address", + "name": "priceFeed", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "walletBalance", + "type": "uint256" + } + ] + }, { "internalType": "uint256", - "name": "exchangeRate", + "name": "earnAPR", "type": "uint256" }, { "internalType": "uint256", - "name": "price", + "name": "totalBorrow", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalBorrowPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupply", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalSupplyPrincipal", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trackingIndexScale", "type": "uint256" } ] @@ -361,14 +2137,23 @@ "compilationTarget": { "Sleuth/CompoundV2Query.sol": "CompoundV2Query" }, - "libraries": {} + "libraries": {}, + "viaIR": true }, "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + }, "Sleuth/CompoundV2Query.sol": { - "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", "urls": [ - "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", - "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", + "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" ], "license": "UNLICENSED" } @@ -377,28 +2162,37 @@ }, "ast": { "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 309, + "id": 1625, "exportedSymbols": { "CToken": [ - 72 + 1347 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 ], "CompoundV2Query": [ - 308 + 1624 ], "Comptroller": [ - 148 + 1423 + ], + "ERC20": [ + 630 ], "PriceOracle": [ - 157 + 1431 ] }, "nodeType": "SourceUnit", - "src": "39:2941:0", + "src": "39:3525:2", "nodes": [ { - "id": 1, + "id": 1270, "nodeType": "PragmaDirective", - "src": "39:24:0", + "src": "39:24:2", "literals": [ "solidity", "^", @@ -407,98 +2201,110 @@ ] }, { - "id": 72, + "id": 1271, + "nodeType": "ImportDirective", + "src": "65:26:2", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 1625, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 1347, "nodeType": "ContractDefinition", - "src": "65:670:0", + "src": "93:723:2", "nodes": [ { - "id": 7, + "id": 1277, "nodeType": "FunctionDefinition", - "src": "86:54:0", + "src": "114:54:2", "functionSelector": "5fe3b567", "implemented": false, "kind": "function", "modifiers": [], "name": "comptroller", - "nameLocation": "95:11:0", + "nameLocation": "123:11:2", "parameters": { - "id": 2, + "id": 1272, "nodeType": "ParameterList", "parameters": [], - "src": "106:2:0" + "src": "134:2:2" }, "returnParameters": { - "id": 6, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5, + "id": 1275, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 7, - "src": "127:11:0", + "scope": 1277, + "src": "155:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 4, + "id": 1274, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3, + "id": 1273, "name": "Comptroller", "nameLocations": [ - "127:11:0" + "155:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "127:11:0" + "referencedDeclaration": 1423, + "src": "155:11:2" }, - "referencedDeclaration": 148, - "src": "127:11:0", + "referencedDeclaration": 1423, + "src": "155:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, "visibility": "internal" } ], - "src": "126:13:0" + "src": "154:13:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 16, + "id": 1286, "nodeType": "FunctionDefinition", - "src": "144:68:0", + "src": "172:68:2", "functionSelector": "a9059cbb", "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "153:8:0", + "nameLocation": "181:8:2", "parameters": { - "id": 12, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9, + "id": 1279, "mutability": "mutable", "name": "dst", - "nameLocation": "170:3:0", + "nameLocation": "198:3:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "162:11:0", + "scope": 1286, + "src": "190:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -506,10 +2312,10 @@ "typeString": "address" }, "typeName": { - "id": 8, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", - "src": "162:7:0", + "src": "190:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -520,13 +2326,13 @@ }, { "constant": false, - "id": 11, + "id": 1281, "mutability": "mutable", "name": "amount", - "nameLocation": "180:6:0", + "nameLocation": "208:6:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "175:11:0", + "scope": 1286, + "src": "203:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -534,10 +2340,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10, + "id": 1280, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "175:4:0", + "src": "203:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -546,21 +2352,21 @@ "visibility": "internal" } ], - "src": "161:26:0" + "src": "189:26:2" }, "returnParameters": { - "id": 15, + "id": 1285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 14, + "id": 1284, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "206:4:0", + "scope": 1286, + "src": "234:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -568,10 +2374,10 @@ "typeString": "bool" }, "typeName": { - "id": 13, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "206:4:0", + "src": "234:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -580,36 +2386,36 @@ "visibility": "internal" } ], - "src": "205:6:0" + "src": "233:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27, + "id": 1297, "nodeType": "FunctionDefinition", - "src": "216:85:0", + "src": "244:85:2", "functionSelector": "23b872dd", "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "225:12:0", + "nameLocation": "253:12:2", "parameters": { - "id": 23, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 1288, "mutability": "mutable", "name": "src", - "nameLocation": "246:3:0", + "nameLocation": "274:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "238:11:0", + "scope": 1297, + "src": "266:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -617,10 +2423,10 @@ "typeString": "address" }, "typeName": { - "id": 17, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:0", + "src": "266:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -631,13 +2437,13 @@ }, { "constant": false, - "id": 20, + "id": 1290, "mutability": "mutable", "name": "dst", - "nameLocation": "259:3:0", + "nameLocation": "287:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "251:11:0", + "scope": 1297, + "src": "279:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -645,10 +2451,10 @@ "typeString": "address" }, "typeName": { - "id": 19, + "id": 1289, "name": "address", "nodeType": "ElementaryTypeName", - "src": "251:7:0", + "src": "279:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -659,13 +2465,13 @@ }, { "constant": false, - "id": 22, + "id": 1292, "mutability": "mutable", "name": "amount", - "nameLocation": "269:6:0", + "nameLocation": "297:6:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "264:11:0", + "scope": 1297, + "src": "292:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -673,10 +2479,10 @@ "typeString": "uint256" }, "typeName": { - "id": 21, + "id": 1291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "264:4:0", + "src": "292:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -685,21 +2491,21 @@ "visibility": "internal" } ], - "src": "237:39:0" + "src": "265:39:2" }, "returnParameters": { - "id": 26, + "id": 1296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 1295, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "295:4:0", + "scope": 1297, + "src": "323:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -707,10 +2513,10 @@ "typeString": "bool" }, "typeName": { - "id": 24, + "id": 1294, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "295:4:0", + "src": "323:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -719,36 +2525,36 @@ "visibility": "internal" } ], - "src": "294:6:0" + "src": "322:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 36, + "id": 1306, "nodeType": "FunctionDefinition", - "src": "305:71:0", + "src": "333:71:2", "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "314:7:0", + "nameLocation": "342:7:2", "parameters": { - "id": 32, + "id": 1302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 1299, "mutability": "mutable", "name": "spender", - "nameLocation": "330:7:0", + "nameLocation": "358:7:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "322:15:0", + "scope": 1306, + "src": "350:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -756,10 +2562,10 @@ "typeString": "address" }, "typeName": { - "id": 28, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", - "src": "322:7:0", + "src": "350:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -770,13 +2576,13 @@ }, { "constant": false, - "id": 31, + "id": 1301, "mutability": "mutable", "name": "amount", - "nameLocation": "344:6:0", + "nameLocation": "372:6:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "339:11:0", + "scope": 1306, + "src": "367:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -784,10 +2590,10 @@ "typeString": "uint256" }, "typeName": { - "id": 30, + "id": 1300, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "339:4:0", + "src": "367:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -796,21 +2602,21 @@ "visibility": "internal" } ], - "src": "321:30:0" + "src": "349:30:2" }, "returnParameters": { - "id": 35, + "id": 1305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34, + "id": 1304, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "370:4:0", + "scope": 1306, + "src": "398:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -818,10 +2624,10 @@ "typeString": "bool" }, "typeName": { - "id": 33, + "id": 1303, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "370:4:0", + "src": "398:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -830,36 +2636,36 @@ "visibility": "internal" } ], - "src": "369:6:0" + "src": "397:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45, + "id": 1315, "nodeType": "FunctionDefinition", - "src": "380:80:0", + "src": "408:80:2", "functionSelector": "dd62ed3e", "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", - "nameLocation": "389:9:0", + "nameLocation": "417:9:2", "parameters": { - "id": 41, + "id": 1311, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38, + "id": 1308, "mutability": "mutable", "name": "owner", - "nameLocation": "407:5:0", + "nameLocation": "435:5:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "399:13:0", + "scope": 1315, + "src": "427:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -867,10 +2673,10 @@ "typeString": "address" }, "typeName": { - "id": 37, + "id": 1307, "name": "address", "nodeType": "ElementaryTypeName", - "src": "399:7:0", + "src": "427:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -881,13 +2687,13 @@ }, { "constant": false, - "id": 40, + "id": 1310, "mutability": "mutable", "name": "spender", - "nameLocation": "422:7:0", + "nameLocation": "450:7:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "414:15:0", + "scope": 1315, + "src": "442:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -895,10 +2701,10 @@ "typeString": "address" }, "typeName": { - "id": 39, + "id": 1309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "414:7:0", + "src": "442:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -908,21 +2714,21 @@ "visibility": "internal" } ], - "src": "398:32:0" + "src": "426:32:2" }, "returnParameters": { - "id": 44, + "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 1313, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "454:4:0", + "scope": 1315, + "src": "482:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -930,10 +2736,10 @@ "typeString": "uint256" }, "typeName": { - "id": 42, + "id": 1312, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "454:4:0", + "src": "482:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -942,36 +2748,36 @@ "visibility": "internal" } ], - "src": "453:6:0" + "src": "481:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 52, + "id": 1322, "nodeType": "FunctionDefinition", - "src": "464:63:0", + "src": "492:63:2", "functionSelector": "70a08231", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "473:9:0", + "nameLocation": "501:9:2", "parameters": { - "id": 48, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 47, + "id": 1317, "mutability": "mutable", "name": "owner", - "nameLocation": "491:5:0", + "nameLocation": "519:5:2", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "483:13:0", + "scope": 1322, + "src": "511:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -979,10 +2785,10 @@ "typeString": "address" }, "typeName": { - "id": 46, + "id": 1316, "name": "address", "nodeType": "ElementaryTypeName", - "src": "483:7:0", + "src": "511:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -992,21 +2798,21 @@ "visibility": "internal" } ], - "src": "482:15:0" + "src": "510:15:2" }, "returnParameters": { - "id": 51, + "id": 1321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 50, + "id": 1320, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "521:4:0", + "scope": 1322, + "src": "549:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1014,10 +2820,10 @@ "typeString": "uint256" }, "typeName": { - "id": 49, + "id": 1319, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "521:4:0", + "src": "549:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1026,36 +2832,36 @@ "visibility": "internal" } ], - "src": "520:6:0" + "src": "548:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59, + "id": 1329, "nodeType": "FunctionDefinition", - "src": "531:68:0", + "src": "559:68:2", "functionSelector": "3af9e669", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOfUnderlying", - "nameLocation": "540:19:0", + "nameLocation": "568:19:2", "parameters": { - "id": 55, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54, + "id": 1324, "mutability": "mutable", "name": "owner", - "nameLocation": "568:5:0", + "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "560:13:0", + "scope": 1329, + "src": "588:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1063,10 +2869,10 @@ "typeString": "address" }, "typeName": { - "id": 53, + "id": 1323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "560:7:0", + "src": "588:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1076,21 +2882,21 @@ "visibility": "internal" } ], - "src": "559:15:0" + "src": "587:15:2" }, "returnParameters": { - "id": 58, + "id": 1328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 57, + "id": 1327, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "593:4:0", + "scope": 1329, + "src": "621:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1098,10 +2904,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 1326, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "593:4:0", + "src": "621:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1110,36 +2916,36 @@ "visibility": "internal" } ], - "src": "592:6:0" + "src": "620:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 66, + "id": 1336, "nodeType": "FunctionDefinition", - "src": "603:71:0", + "src": "631:71:2", "functionSelector": "17bfdfbc", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowBalanceCurrent", - "nameLocation": "612:20:0", + "nameLocation": "640:20:2", "parameters": { - "id": 62, + "id": 1332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 61, + "id": 1331, "mutability": "mutable", "name": "account", - "nameLocation": "641:7:0", + "nameLocation": "669:7:2", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "633:15:0", + "scope": 1336, + "src": "661:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1147,10 +2953,10 @@ "typeString": "address" }, "typeName": { - "id": 60, + "id": 1330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "633:7:0", + "src": "661:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1160,21 +2966,76 @@ "visibility": "internal" } ], - "src": "632:17:0" + "src": "660:17:2" + }, + "returnParameters": { + "id": 1335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1336, + "src": "696:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1333, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "696:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "695:6:2" + }, + "scope": 1347, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 1341, + "nodeType": "FunctionDefinition", + "src": "706:55:2", + "functionSelector": "bd6d894d", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exchangeRateCurrent", + "nameLocation": "715:19:2", + "parameters": { + "id": 1337, + "nodeType": "ParameterList", + "parameters": [], + "src": "734:2:2" }, "returnParameters": { - "id": 65, + "id": 1340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 64, + "id": 1339, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "668:4:0", + "scope": 1341, + "src": "755:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1182,10 +3043,10 @@ "typeString": "uint256" }, "typeName": { - "id": 63, + "id": 1338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "668:4:0", + "src": "755:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1194,64 +3055,65 @@ "visibility": "internal" } ], - "src": "667:6:0" + "src": "754:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 71, + "id": 1346, "nodeType": "FunctionDefinition", - "src": "678:55:0", - "functionSelector": "bd6d894d", + "src": "765:49:2", + "functionSelector": "6f307dc3", "implemented": false, "kind": "function", "modifiers": [], - "name": "exchangeRateCurrent", - "nameLocation": "687:19:0", + "name": "underlying", + "nameLocation": "774:10:2", "parameters": { - "id": 67, + "id": 1342, "nodeType": "ParameterList", "parameters": [], - "src": "706:2:0" + "src": "784:2:2" }, "returnParameters": { - "id": 70, + "id": 1345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 69, + "id": 1344, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 71, - "src": "727:4:0", + "scope": 1346, + "src": "805:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 68, - "name": "uint", + "id": 1343, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "727:4:0", + "src": "805:7:2", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "726:6:0" + "src": "804:9:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -1264,41 +3126,41 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 72 + 1347 ], "name": "CToken", - "nameLocation": "75:6:0", - "scope": 309, + "nameLocation": "103:6:2", + "scope": 1625, "usedErrors": [] }, { - "id": 148, + "id": 1423, "nodeType": "ContractDefinition", - "src": "737:668:0", + "src": "818:668:2", "nodes": [ { - "id": 81, + "id": 1356, "nodeType": "FunctionDefinition", - "src": "763:61:0", + "src": "844:61:2", "functionSelector": "8e8f294b", "implemented": false, "kind": "function", "modifiers": [], "name": "markets", - "nameLocation": "772:7:0", + "nameLocation": "853:7:2", "parameters": { - "id": 75, + "id": 1350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 74, + "id": 1349, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "780:7:0", + "scope": 1356, + "src": "861:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1306,10 +3168,10 @@ "typeString": "address" }, "typeName": { - "id": 73, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", - "src": "780:7:0", + "src": "861:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1319,21 +3181,21 @@ "visibility": "internal" } ], - "src": "779:9:0" + "src": "860:9:2" }, "returnParameters": { - "id": 80, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 77, + "id": 1352, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "812:4:0", + "scope": 1356, + "src": "893:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1341,10 +3203,10 @@ "typeString": "bool" }, "typeName": { - "id": 76, + "id": 1351, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "812:4:0", + "src": "893:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1354,13 +3216,13 @@ }, { "constant": false, - "id": 79, + "id": 1354, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "818:4:0", + "scope": 1356, + "src": "899:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1368,10 +3230,10 @@ "typeString": "uint256" }, "typeName": { - "id": 78, + "id": 1353, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:0", + "src": "899:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1380,101 +3242,101 @@ "visibility": "internal" } ], - "src": "811:12:0" + "src": "892:12:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 87, + "id": 1362, "nodeType": "FunctionDefinition", - "src": "828:54:0", + "src": "909:54:2", "functionSelector": "7dc0d1d0", "implemented": false, "kind": "function", "modifiers": [], "name": "oracle", - "nameLocation": "837:6:0", + "nameLocation": "918:6:2", "parameters": { - "id": 82, + "id": 1357, "nodeType": "ParameterList", "parameters": [], - "src": "843:2:0" + "src": "924:2:2" }, "returnParameters": { - "id": 86, + "id": 1361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 85, + "id": 1360, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 87, - "src": "869:11:0", + "scope": 1362, + "src": "950:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 84, + "id": 1359, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 83, + "id": 1358, "name": "PriceOracle", "nameLocations": [ - "869:11:0" + "950:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "869:11:0" + "referencedDeclaration": 1431, + "src": "950:11:2" }, - "referencedDeclaration": 157, - "src": "869:11:0", + "referencedDeclaration": 1431, + "src": "950:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "src": "868:13:0" + "src": "949:13:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 98, + "id": 1373, "nodeType": "FunctionDefinition", - "src": "886:79:0", + "src": "967:79:2", "functionSelector": "5ec88c79", "implemented": false, "kind": "function", "modifiers": [], "name": "getAccountLiquidity", - "nameLocation": "895:19:0", + "nameLocation": "976:19:2", "parameters": { - "id": 90, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 89, + "id": 1364, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "915:7:0", + "scope": 1373, + "src": "996:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1482,10 +3344,10 @@ "typeString": "address" }, "typeName": { - "id": 88, + "id": 1363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "915:7:0", + "src": "996:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1495,21 +3357,21 @@ "visibility": "internal" } ], - "src": "914:9:0" + "src": "995:9:2" }, "returnParameters": { - "id": 97, + "id": 1372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 92, + "id": 1367, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "947:4:0", + "scope": 1373, + "src": "1028:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1517,10 +3379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 91, + "id": 1366, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "947:4:0", + "src": "1028:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1530,13 +3392,13 @@ }, { "constant": false, - "id": 94, + "id": 1369, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "953:4:0", + "scope": 1373, + "src": "1034:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1544,10 +3406,10 @@ "typeString": "uint256" }, "typeName": { - "id": 93, + "id": 1368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "953:4:0", + "src": "1034:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1557,13 +3419,13 @@ }, { "constant": false, - "id": 96, + "id": 1371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "959:4:0", + "scope": 1373, + "src": "1040:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1571,10 +3433,10 @@ "typeString": "uint256" }, "typeName": { - "id": 95, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "959:4:0", + "src": "1040:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1583,36 +3445,36 @@ "visibility": "internal" } ], - "src": "946:18:0" + "src": "1027:18:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 107, + "id": 1382, "nodeType": "FunctionDefinition", - "src": "969:70:0", + "src": "1050:70:2", "functionSelector": "abfceffc", "implemented": false, "kind": "function", "modifiers": [], "name": "getAssetsIn", - "nameLocation": "978:11:0", + "nameLocation": "1059:11:2", "parameters": { - "id": 101, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 1375, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "990:7:0", + "scope": 1382, + "src": "1071:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1620,10 +3482,10 @@ "typeString": "address" }, "typeName": { - "id": 99, + "id": 1374, "name": "address", "nodeType": "ElementaryTypeName", - "src": "990:7:0", + "src": "1071:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1633,89 +3495,89 @@ "visibility": "internal" } ], - "src": "989:9:0" + "src": "1070:9:2" }, "returnParameters": { - "id": 106, + "id": 1381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 105, + "id": 1380, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "1022:15:0", + "scope": 1382, + "src": "1103:15:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", "typeString": "contract CToken[]" }, "typeName": { "baseType": { - "id": 103, + "id": 1378, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 102, + "id": 1377, "name": "CToken", "nameLocations": [ - "1022:6:0" + "1103:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1022:6:0" + "referencedDeclaration": 1347, + "src": "1103:6:2" }, - "referencedDeclaration": 72, - "src": "1022:6:0", + "referencedDeclaration": 1347, + "src": "1103:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 104, + "id": 1379, "nodeType": "ArrayTypeName", - "src": "1022:8:0", + "src": "1103:8:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", "typeString": "contract CToken[]" } }, "visibility": "internal" } ], - "src": "1021:17:0" + "src": "1102:17:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 112, + "id": 1387, "nodeType": "FunctionDefinition", - "src": "1043:37:0", + "src": "1124:37:2", "functionSelector": "e9af0292", "implemented": false, "kind": "function", "modifiers": [], "name": "claimComp", - "nameLocation": "1052:9:0", + "nameLocation": "1133:9:2", "parameters": { - "id": 110, + "id": 1385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 109, + "id": 1384, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1062:7:0", + "scope": 1387, + "src": "1143:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1723,10 +3585,10 @@ "typeString": "address" }, "typeName": { - "id": 108, + "id": 1383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1062:7:0", + "src": "1143:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1736,42 +3598,42 @@ "visibility": "internal" } ], - "src": "1061:9:0" + "src": "1142:9:2" }, "returnParameters": { - "id": 111, + "id": 1386, "nodeType": "ParameterList", "parameters": [], - "src": "1079:0:0" + "src": "1160:0:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 119, + "id": 1394, "nodeType": "FunctionDefinition", - "src": "1084:59:0", + "src": "1165:59:2", "functionSelector": "cc7ebdc4", "implemented": false, "kind": "function", "modifiers": [], "name": "compAccrued", - "nameLocation": "1093:11:0", + "nameLocation": "1174:11:2", "parameters": { - "id": 115, + "id": 1390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 114, + "id": 1389, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1105:7:0", + "scope": 1394, + "src": "1186:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1779,10 +3641,10 @@ "typeString": "address" }, "typeName": { - "id": 113, + "id": 1388, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1105:7:0", + "src": "1186:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1792,21 +3654,21 @@ "visibility": "internal" } ], - "src": "1104:9:0" + "src": "1185:9:2" }, "returnParameters": { - "id": 118, + "id": 1393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 117, + "id": 1392, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1137:4:0", + "scope": 1394, + "src": "1218:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1814,10 +3676,10 @@ "typeString": "uint256" }, "typeName": { - "id": 116, + "id": 1391, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:0", + "src": "1218:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1826,36 +3688,36 @@ "visibility": "internal" } ], - "src": "1136:6:0" + "src": "1217:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 126, + "id": 1401, "nodeType": "FunctionDefinition", - "src": "1147:58:0", + "src": "1228:58:2", "functionSelector": "1d7b33d7", "implemented": false, "kind": "function", "modifiers": [], "name": "compSpeeds", - "nameLocation": "1156:10:0", + "nameLocation": "1237:10:2", "parameters": { - "id": 122, + "id": 1397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 121, + "id": 1396, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1167:7:0", + "scope": 1401, + "src": "1248:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1863,10 +3725,10 @@ "typeString": "address" }, "typeName": { - "id": 120, + "id": 1395, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1167:7:0", + "src": "1248:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1876,21 +3738,21 @@ "visibility": "internal" } ], - "src": "1166:9:0" + "src": "1247:9:2" }, "returnParameters": { - "id": 125, + "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 1399, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1199:4:0", + "scope": 1401, + "src": "1280:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1898,10 +3760,10 @@ "typeString": "uint256" }, "typeName": { - "id": 123, + "id": 1398, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1199:4:0", + "src": "1280:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1910,36 +3772,36 @@ "visibility": "internal" } ], - "src": "1198:6:0" + "src": "1279:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 133, + "id": 1408, "nodeType": "FunctionDefinition", - "src": "1209:64:0", + "src": "1290:64:2", "functionSelector": "6aa875b5", "implemented": false, "kind": "function", "modifiers": [], "name": "compSupplySpeeds", - "nameLocation": "1218:16:0", + "nameLocation": "1299:16:2", "parameters": { - "id": 129, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 128, + "id": 1403, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1235:7:0", + "scope": 1408, + "src": "1316:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1947,10 +3809,10 @@ "typeString": "address" }, "typeName": { - "id": 127, + "id": 1402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1235:7:0", + "src": "1316:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1960,21 +3822,21 @@ "visibility": "internal" } ], - "src": "1234:9:0" + "src": "1315:9:2" }, "returnParameters": { - "id": 132, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 131, + "id": 1406, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1267:4:0", + "scope": 1408, + "src": "1348:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1982,10 +3844,10 @@ "typeString": "uint256" }, "typeName": { - "id": 130, + "id": 1405, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1267:4:0", + "src": "1348:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1994,36 +3856,36 @@ "visibility": "internal" } ], - "src": "1266:6:0" + "src": "1347:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 140, + "id": 1415, "nodeType": "FunctionDefinition", - "src": "1277:64:0", + "src": "1358:64:2", "functionSelector": "f4a433c0", "implemented": false, "kind": "function", "modifiers": [], "name": "compBorrowSpeeds", - "nameLocation": "1286:16:0", + "nameLocation": "1367:16:2", "parameters": { - "id": 136, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 135, + "id": 1410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1303:7:0", + "scope": 1415, + "src": "1384:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2031,10 +3893,10 @@ "typeString": "address" }, "typeName": { - "id": 134, + "id": 1409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1303:7:0", + "src": "1384:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2044,21 +3906,21 @@ "visibility": "internal" } ], - "src": "1302:9:0" + "src": "1383:9:2" }, "returnParameters": { - "id": 139, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 138, + "id": 1413, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1335:4:0", + "scope": 1415, + "src": "1416:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2066,10 +3928,10 @@ "typeString": "uint256" }, "typeName": { - "id": 137, + "id": 1412, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1335:4:0", + "src": "1416:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2078,36 +3940,36 @@ "visibility": "internal" } ], - "src": "1334:6:0" + "src": "1415:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 147, + "id": 1422, "nodeType": "FunctionDefinition", - "src": "1345:58:0", + "src": "1426:58:2", "functionSelector": "4a584432", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowCaps", - "nameLocation": "1354:10:0", + "nameLocation": "1435:10:2", "parameters": { - "id": 143, + "id": 1418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 142, + "id": 1417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1365:7:0", + "scope": 1422, + "src": "1446:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2115,10 +3977,10 @@ "typeString": "address" }, "typeName": { - "id": 141, + "id": 1416, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1365:7:0", + "src": "1446:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2128,21 +3990,21 @@ "visibility": "internal" } ], - "src": "1364:9:0" + "src": "1445:9:2" }, "returnParameters": { - "id": 146, + "id": 1421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 1420, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1397:4:0", + "scope": 1422, + "src": "1478:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2150,10 +4012,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 1419, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1397:4:0", + "src": "1478:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2162,9 +4024,9 @@ "visibility": "internal" } ], - "src": "1396:6:0" + "src": "1477:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2177,85 +4039,75 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 148 + 1423 ], "name": "Comptroller", - "nameLocation": "747:11:0", - "scope": 309, + "nameLocation": "828:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 157, + "id": 1431, "nodeType": "ContractDefinition", - "src": "1407:100:0", + "src": "1488:93:2", "nodes": [ { - "id": 156, + "id": 1430, "nodeType": "FunctionDefinition", - "src": "1433:72:0", - "functionSelector": "fc57d4df", + "src": "1514:65:2", + "functionSelector": "fe2c6198", "implemented": false, "kind": "function", "modifiers": [], - "name": "getUnderlyingPrice", - "nameLocation": "1442:18:0", + "name": "price", + "nameLocation": "1523:5:2", "parameters": { - "id": 152, + "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, + "id": 1425, "mutability": "mutable", - "name": "cToken", - "nameLocation": "1468:6:0", + "name": "price", + "nameLocation": "1543:5:2", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1461:13:0", + "scope": 1430, + "src": "1529:19:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 150, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 149, - "name": "CToken", - "nameLocations": [ - "1461:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1461:6:0" - }, - "referencedDeclaration": 72, - "src": "1461:6:0", + "id": 1424, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1529:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "1460:15:0" + "src": "1528:21:2" }, "returnParameters": { - "id": 155, + "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 154, + "id": 1428, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1499:4:0", + "scope": 1430, + "src": "1573:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2263,10 +4115,10 @@ "typeString": "uint256" }, "typeName": { - "id": 153, + "id": 1427, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1499:4:0", + "src": "1573:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2275,9 +4127,9 @@ "visibility": "internal" } ], - "src": "1498:6:0" + "src": "1572:6:2" }, - "scope": 157, + "scope": 1431, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2290,33 +4142,33 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 157 + 1431 ], "name": "PriceOracle", - "nameLocation": "1417:11:0", - "scope": 309, + "nameLocation": "1498:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 308, + "id": 1624, "nodeType": "ContractDefinition", - "src": "1509:1470:0", + "src": "1583:1980:2", "nodes": [ { - "id": 174, + "id": 1450, "nodeType": "StructDefinition", - "src": "1538:203:0", + "src": "1626:203:2", "canonicalName": "CompoundV2Query.CTokenMetadata", "members": [ { "constant": false, - "id": 159, + "id": 1435, "mutability": "mutable", "name": "cToken", - "nameLocation": "1574:6:0", + "nameLocation": "1662:6:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1566:14:0", + "scope": 1450, + "src": "1654:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2324,10 +4176,10 @@ "typeString": "address" }, "typeName": { - "id": 158, + "id": 1434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1566:7:0", + "src": "1654:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2338,13 +4190,13 @@ }, { "constant": false, - "id": 161, + "id": 1437, "mutability": "mutable", "name": "allowance", - "nameLocation": "1591:9:0", + "nameLocation": "1679:9:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1586:14:0", + "scope": 1450, + "src": "1674:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2352,10 +4204,10 @@ "typeString": "uint256" }, "typeName": { - "id": 160, + "id": 1436, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1586:4:0", + "src": "1674:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2365,13 +4217,13 @@ }, { "constant": false, - "id": 163, + "id": 1439, "mutability": "mutable", "name": "balance", - "nameLocation": "1611:7:0", + "nameLocation": "1699:7:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1606:12:0", + "scope": 1450, + "src": "1694:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2379,10 +4231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 1438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1606:4:0", + "src": "1694:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2392,13 +4244,13 @@ }, { "constant": false, - "id": 165, + "id": 1441, "mutability": "mutable", "name": "balanceUnderlying", - "nameLocation": "1629:17:0", + "nameLocation": "1717:17:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1624:22:0", + "scope": 1450, + "src": "1712:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2406,10 +4258,10 @@ "typeString": "uint256" }, "typeName": { - "id": 164, + "id": 1440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1624:4:0", + "src": "1712:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2419,13 +4271,13 @@ }, { "constant": false, - "id": 167, + "id": 1443, "mutability": "mutable", "name": "borrowBalance", - "nameLocation": "1657:13:0", + "nameLocation": "1745:13:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1652:18:0", + "scope": 1450, + "src": "1740:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2433,10 +4285,10 @@ "typeString": "uint256" }, "typeName": { - "id": 166, + "id": 1442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1652:4:0", + "src": "1740:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2446,13 +4298,13 @@ }, { "constant": false, - "id": 169, + "id": 1445, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "1681:16:0", + "nameLocation": "1769:16:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1676:21:0", + "scope": 1450, + "src": "1764:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2460,10 +4312,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 1444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1676:4:0", + "src": "1764:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2473,13 +4325,13 @@ }, { "constant": false, - "id": 171, + "id": 1447, "mutability": "mutable", "name": "exchangeRate", - "nameLocation": "1708:12:0", + "nameLocation": "1796:12:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1703:17:0", + "scope": 1450, + "src": "1791:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2487,10 +4339,10 @@ "typeString": "uint256" }, "typeName": { - "id": 170, + "id": 1446, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1703:4:0", + "src": "1791:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2500,13 +4352,13 @@ }, { "constant": false, - "id": 173, + "id": 1449, "mutability": "mutable", "name": "price", - "nameLocation": "1731:5:0", + "nameLocation": "1819:5:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1726:10:0", + "scope": 1450, + "src": "1814:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2514,10 +4366,10 @@ "typeString": "uint256" }, "typeName": { - "id": 172, + "id": 1448, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1726:4:0", + "src": "1814:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2527,95 +4379,293 @@ } ], "name": "CTokenMetadata", - "nameLocation": "1545:14:0", - "scope": 308, + "nameLocation": "1633:14:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1460, + "nodeType": "StructDefinition", + "src": "1833:124:2", + "canonicalName": "CompoundV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1865:15:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1860:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1860:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1456, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1903:6:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1886:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 1454, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1453, + "name": "CTokenMetadata", + "nameLocations": [ + "1886:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1450, + "src": "1886:14:2" + }, + "referencedDeclaration": 1450, + "src": "1886:14:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 1455, + "nodeType": "ArrayTypeName", + "src": "1886:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1942:10:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1915:37:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 1458, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1457, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1915:26:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1915:26:2" + }, + "referencedDeclaration": 789, + "src": "1915:26:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1840:13:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1466, + "nodeType": "StructDefinition", + "src": "1961:75:2", + "canonicalName": "CompoundV2Query.CTokenRequest", + "members": [ + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1995:6:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "1988:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1461, + "name": "CToken", + "nameLocations": [ + "1988:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1988:6:2" + }, + "referencedDeclaration": 1347, + "src": "1988:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "priceOracleSymbol", + "nameLocation": "2014:17:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2007:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1464, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2007:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenRequest", + "nameLocation": "1968:13:2", + "scope": 1624, "visibility": "public" }, { - "id": 245, + "id": 1554, "nodeType": "FunctionDefinition", - "src": "1745:499:0", + "src": "2040:713:2", "body": { - "id": 244, + "id": 1553, "nodeType": "Block", - "src": "1925:319:0", + "src": "2251:502:2", "statements": [ { "assignments": [ - 194 + 1488 ], "declarations": [ { "constant": false, - "id": 194, + "id": 1488, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "1943:11:0", + "nameLocation": "2269:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1931:23:0", + "scope": 1553, + "src": "2257:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 193, + "id": 1487, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 192, + "id": 1486, "name": "PriceOracle", "nameLocations": [ - "1931:11:0" + "2257:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "1931:11:0" + "referencedDeclaration": 1431, + "src": "2257:11:2" }, - "referencedDeclaration": 157, - "src": "1931:11:0", + "referencedDeclaration": 1431, + "src": "2257:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "id": 198, + "id": 1492, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 195, + "id": 1489, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "1957:11:0", + "referencedDeclaration": 1469, + "src": "2283:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 196, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1969:6:0", + "memberLocation": "2295:6:2", "memberName": "oracle", "nodeType": "MemberAccess", - "referencedDeclaration": 87, - "src": "1957:18:0", + "referencedDeclaration": 1362, + "src": "2283:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", "typeString": "function () view external returns (contract PriceOracle)" } }, - "id": 197, + "id": 1491, "isConstant": false, "isLValue": false, "isPure": false, @@ -2624,30 +4674,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1957:20:0", + "src": "2283:20:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "nodeType": "VariableDeclarationStatement", - "src": "1931:46:0" + "src": "2257:46:2" }, { "assignments": [ - 200 + 1494 ], "declarations": [ { "constant": false, - "id": 200, + "id": 1494, "mutability": "mutable", "name": "cTokenCount", - "nameLocation": "1988:11:0", + "nameLocation": "2314:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1983:16:0", + "scope": 1553, + "src": "2309:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2655,10 +4705,10 @@ "typeString": "uint256" }, "typeName": { - "id": 199, + "id": 1493, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:0", + "src": "2309:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2667,99 +4717,99 @@ "visibility": "internal" } ], - "id": 203, + "id": 1497, "initialValue": { "expression": { - "id": 201, + "id": 1495, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2002:7:0", + "referencedDeclaration": 1476, + "src": "2328:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 202, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2010:6:0", + "memberLocation": "2336:6:2", "memberName": "length", "nodeType": "MemberAccess", - "src": "2002:14:0", + "src": "2328:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1983:33:0" + "src": "2309:33:2" }, { "assignments": [ - 208 + 1502 ], "declarations": [ { "constant": false, - "id": 208, + "id": 1502, "mutability": "mutable", - "name": "res", - "nameLocation": "2046:3:0", + "name": "tokens", + "nameLocation": "2372:6:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2022:27:0", + "scope": 1553, + "src": "2348:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 206, + "id": 1500, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 205, + "id": 1499, "name": "CTokenMetadata", "nameLocations": [ - "2022:14:0" + "2348:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2022:14:0" + "referencedDeclaration": 1450, + "src": "2348:14:2" }, - "referencedDeclaration": 174, - "src": "2022:14:0", + "referencedDeclaration": 1450, + "src": "2348:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 207, + "id": 1501, "nodeType": "ArrayTypeName", - "src": "2022:16:0", + "src": "2348:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, "visibility": "internal" } ], - "id": 215, + "id": 1509, "initialValue": { "arguments": [ { - "id": 213, + "id": 1507, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2073:11:0", + "referencedDeclaration": 1494, + "src": "2402:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2773,48 +4823,48 @@ "typeString": "uint256" } ], - "id": 212, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "2052:20:0", + "src": "2381:20:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 210, + "id": 1504, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 209, + "id": 1503, "name": "CTokenMetadata", "nameLocations": [ - "2056:14:0" + "2385:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2056:14:0" + "referencedDeclaration": 1450, + "src": "2385:14:2" }, - "referencedDeclaration": 174, - "src": "2056:14:0", + "referencedDeclaration": 1450, + "src": "2385:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 211, + "id": 1505, "nodeType": "ArrayTypeName", - "src": "2056:16:0", + "src": "2385:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } } }, - "id": 214, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2823,50 +4873,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2052:33:0", + "src": "2381:33:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2022:63:0" + "src": "2348:66:2" }, { "body": { - "id": 240, + "id": 1534, "nodeType": "Block", - "src": "2130:94:0", + "src": "2459:97:2", "statements": [ { "expression": { - "id": 238, + "id": 1532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 226, - "name": "res", + "id": 1520, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2138:3:0", + "referencedDeclaration": 1502, + "src": "2467:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, - "id": 228, + "id": 1522, "indexExpression": { - "id": 227, + "id": 1521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2142:1:0", + "referencedDeclaration": 1511, + "src": "2474:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2877,9 +4927,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2138:6:0", + "src": "2467:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, @@ -2888,50 +4938,50 @@ "rightHandSide": { "arguments": [ { - "id": 230, + "id": 1524, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2162:11:0", + "referencedDeclaration": 1469, + "src": "2494:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, { - "id": 231, + "id": 1525, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "2175:11:0", + "referencedDeclaration": 1488, + "src": "2507:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, { "baseExpression": { - "id": 232, + "id": 1526, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2188:7:0", + "referencedDeclaration": 1476, + "src": "2520:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 234, + "id": 1528, "indexExpression": { - "id": 233, + "id": 1527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2196:1:0", + "referencedDeclaration": 1511, + "src": "2528:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2942,31 +4992,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2188:10:0", + "src": "2520:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" } }, { - "id": 235, + "id": 1529, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2200:7:0", + "referencedDeclaration": 1478, + "src": "2532:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 236, + "id": 1530, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2209:7:0", + "referencedDeclaration": 1480, + "src": "2541:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2976,16 +5026,16 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" }, { "typeIdentifier": "t_address_payable", @@ -2996,18 +5046,18 @@ "typeString": "address payable" } ], - "id": 229, + "id": 1523, "name": "cTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 307, - "src": "2147:14:0", + "referencedDeclaration": 1623, + "src": "2479:14:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" } }, - "id": 237, + "id": 1531, "isConstant": false, "isLValue": false, "isPure": false, @@ -3016,22 +5066,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2147:70:0", + "src": "2479:70:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "src": "2138:79:0", + "src": "2467:82:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "id": 239, + "id": 1533, "nodeType": "ExpressionStatement", - "src": "2138:79:0" + "src": "2467:82:2" } ] }, @@ -3040,18 +5090,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 222, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 220, + "id": 1514, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2108:1:0", + "referencedDeclaration": 1511, + "src": "2437:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3060,174 +5110,439 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 221, + "id": 1515, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2112:11:0", + "referencedDeclaration": 1494, + "src": "2441:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2108:15:0", + "src": "2437:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 241, + "id": 1535, "initializationExpression": { "assignments": [ - 217 + 1511 ], "declarations": [ { "constant": false, - "id": 217, + "id": 1511, "mutability": "mutable", "name": "i", - "nameLocation": "2101:1:0", + "nameLocation": "2430:1:2", "nodeType": "VariableDeclaration", - "scope": 241, - "src": "2096:6:0", + "scope": 1535, + "src": "2425:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 216, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2096:4:0", + }, + "typeName": { + "id": 1510, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2425:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1513, + "initialValue": { + "hexValue": "30", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2434:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2425:10:2" + }, + "loopExpression": { + "expression": { + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2454:3:2", + "subExpression": { + "id": 1517, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1511, + "src": "2454:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1519, + "nodeType": "ExpressionStatement", + "src": "2454:3:2" + }, + "nodeType": "ForStatement", + "src": "2420:136:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1539, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2632:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1540, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1480, + "src": "2641:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1537, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2616:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2622:9:2", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2616:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2616:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1542, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "2667:6:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 1544, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2712:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 1545, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2719:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2736:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2728:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2728:8:2", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1543, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2695:16:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" } }, - "visibility": "internal" + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2695:44:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } } ], - "id": 219, - "initialValue": { - "hexValue": "30", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2105:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2096:10:0" - }, - "loopExpression": { "expression": { - "id": 224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2125:3:0", - "subExpression": { - "id": 223, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2125:1:0", - "typeDescriptions": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" } - }, + ], + "id": 1536, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2575:13:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" } }, - "id": 225, - "nodeType": "ExpressionStatement", - "src": "2125:3:0" - }, - "nodeType": "ForStatement", - "src": "2091:133:0" - }, - { - "expression": { - "id": 242, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2236:3:0", + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2599:15:2", + "2659:6:2", + "2683:10:2" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState" + ], + "nodeType": "FunctionCall", + "src": "2575:173:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse memory" } }, - "functionReturnParameters": 191, - "id": 243, + "functionReturnParameters": 1485, + "id": 1552, "nodeType": "Return", - "src": "2229:10:0" + "src": "2562:186:2" } ] }, - "functionSelector": "0637ff4b", + "functionSelector": "61d11a6e", "implemented": true, "kind": "function", "modifiers": [], - "name": "query", - "nameLocation": "1754:5:0", + "name": "getMigratorData", + "nameLocation": "2049:15:2", "parameters": { - "id": 186, + "id": 1481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 177, + "id": 1469, "mutability": "mutable", "name": "comptroller", - "nameLocation": "1777:11:0", + "nameLocation": "2082:11:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1765:23:0", + "scope": 1554, + "src": "2070:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 176, + "id": 1468, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 175, + "id": 1467, "name": "Comptroller", "nameLocations": [ - "1765:11:0" + "2070:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "1765:11:0" + "referencedDeclaration": 1423, + "src": "2070:11:2" }, - "referencedDeclaration": 148, - "src": "1765:11:0", + "referencedDeclaration": 1423, + "src": "2070:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -3235,59 +5550,96 @@ }, { "constant": false, - "id": 181, + "id": 1472, + "mutability": "mutable", + "name": "comet", + "nameLocation": "2105:5:2", + "nodeType": "VariableDeclaration", + "scope": 1554, + "src": "2099:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1471, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1470, + "name": "Comet", + "nameLocations": [ + "2099:5:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "2099:5:2" + }, + "referencedDeclaration": 598, + "src": "2099:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1476, "mutability": "mutable", "name": "cTokens", - "nameLocation": "1812:7:0", + "nameLocation": "2141:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1794:25:0", + "scope": 1554, + "src": "2116:32:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" }, "typeName": { "baseType": { - "id": 179, + "id": 1474, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 178, - "name": "CToken", + "id": 1473, + "name": "CTokenRequest", "nameLocations": [ - "1794:6:0" + "2116:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1794:6:0" + "referencedDeclaration": 1466, + "src": "2116:13:2" }, - "referencedDeclaration": 72, - "src": "1794:6:0", + "referencedDeclaration": 1466, + "src": "2116:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, - "id": 180, + "id": 1475, "nodeType": "ArrayTypeName", - "src": "1794:8:0", + "src": "2116:15:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" } }, "visibility": "internal" }, { "constant": false, - "id": 183, + "id": 1478, "mutability": "mutable", "name": "account", - "nameLocation": "1841:7:0", + "nameLocation": "2170:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1825:23:0", + "scope": 1554, + "src": "2154:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3295,10 +5647,10 @@ "typeString": "address payable" }, "typeName": { - "id": 182, + "id": 1477, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1825:15:0", + "src": "2154:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3309,13 +5661,13 @@ }, { "constant": false, - "id": 185, + "id": 1480, "mutability": "mutable", "name": "spender", - "nameLocation": "1870:7:0", + "nameLocation": "2199:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1854:23:0", + "scope": 1554, + "src": "2183:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3323,10 +5675,10 @@ "typeString": "address payable" }, "typeName": { - "id": 184, + "id": 1479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1854:15:0", + "src": "2183:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3336,91 +5688,157 @@ "visibility": "internal" } ], - "src": "1759:122:0" + "src": "2064:146:2" }, "returnParameters": { - "id": 191, + "id": 1485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 190, + "id": 1484, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1900:23:0", + "scope": 1554, + "src": "2229:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" }, "typeName": { - "baseType": { - "id": 188, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 187, - "name": "CTokenMetadata", - "nameLocations": [ - "1900:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "1900:14:0" - }, - "referencedDeclaration": 174, - "src": "1900:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } + "id": 1483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1482, + "name": "QueryResponse", + "nameLocations": [ + "2229:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1460, + "src": "2229:13:2" }, - "id": 189, - "nodeType": "ArrayTypeName", - "src": "1900:16:0", + "referencedDeclaration": 1460, + "src": "2229:13:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" } }, "visibility": "internal" } ], - "src": "1899:25:0" + "src": "2228:22:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 307, + "id": 1623, "nodeType": "FunctionDefinition", - "src": "2248:729:0", + "src": "2757:804:2", "body": { - "id": 306, + "id": 1622, "nodeType": "Block", - "src": "2450:527:0", + "src": "2980:581:2", "statements": [ + { + "assignments": [ + 1575 + ], + "declarations": [ + { + "constant": false, + "id": 1575, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2993:6:2", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "2986:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1574, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1573, + "name": "CToken", + "nameLocations": [ + "2986:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "2986:6:2" + }, + "referencedDeclaration": 1347, + "src": "2986:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "id": 1578, + "initialValue": { + "expression": { + "id": 1576, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3002:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3016:6:2", + "memberName": "cToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1463, + "src": "3002:20:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2986:36:2" + }, { "assignments": [ null, - 265 + 1580 ], "declarations": [ null, { "constant": false, - "id": 265, + "id": 1580, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "2464:16:0", + "nameLocation": "3036:16:2", "nodeType": "VariableDeclaration", - "scope": 306, - "src": "2459:21:0", + "scope": 1622, + "src": "3031:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3428,10 +5846,10 @@ "typeString": "uint256" }, "typeName": { - "id": 264, + "id": 1579, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2459:4:0", + "src": "3031:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3440,20 +5858,20 @@ "visibility": "internal" } ], - "id": 273, + "id": 1588, "initialValue": { "arguments": [ { "arguments": [ { - "id": 270, + "id": 1585, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2512:6:0", + "referencedDeclaration": 1575, + "src": "3084:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3461,30 +5879,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 269, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 268, + "id": 1583, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": {} } }, - "id": 271, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, @@ -3493,7 +5911,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2504:15:0", + "src": "3076:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3509,33 +5927,33 @@ } ], "expression": { - "id": 266, + "id": 1581, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "2484:11:0", + "referencedDeclaration": 1557, + "src": "3056:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 267, + "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2496:7:0", + "memberLocation": "3068:7:2", "memberName": "markets", "nodeType": "MemberAccess", - "referencedDeclaration": 81, - "src": "2484:19:0", + "referencedDeclaration": 1356, + "src": "3056:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", "typeString": "function (address) view external returns (bool,uint256)" } }, - "id": 272, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": false, @@ -3544,7 +5962,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2484:36:0", + "src": "3056:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", @@ -3552,7 +5970,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2456:64:0" + "src": "3028:64:2" }, { "expression": { @@ -3560,14 +5978,14 @@ { "arguments": [ { - "id": 277, + "id": 1592, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2581:6:0", + "referencedDeclaration": 1575, + "src": "3153:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3575,30 +5993,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 276, + "id": 1591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 275, + "id": 1590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": {} } }, - "id": 278, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, @@ -3607,7 +6025,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2573:15:0", + "src": "3145:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3617,24 +6035,24 @@ { "arguments": [ { - "id": 281, + "id": 1596, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2626:7:0", + "referencedDeclaration": 1565, + "src": "3198:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 282, + "id": 1597, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2635:7:0", + "referencedDeclaration": 1567, + "src": "3207:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3653,33 +6071,33 @@ } ], "expression": { - "id": 279, + "id": 1594, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2609:6:0", + "referencedDeclaration": 1575, + "src": "3181:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 280, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2616:9:0", + "memberLocation": "3188:9:2", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2609:16:0", + "referencedDeclaration": 1315, + "src": "3181:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 283, + "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, @@ -3688,7 +6106,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2609:34:0", + "src": "3181:34:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3698,12 +6116,12 @@ { "arguments": [ { - "id": 286, + "id": 1601, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2679:7:0", + "referencedDeclaration": 1565, + "src": "3251:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3718,33 +6136,33 @@ } ], "expression": { - "id": 284, + "id": 1599, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2662:6:0", + "referencedDeclaration": 1575, + "src": "3234:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 285, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2669:9:0", + "memberLocation": "3241:9:2", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "2662:16:0", + "referencedDeclaration": 1322, + "src": "3234:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 287, + "id": 1602, "isConstant": false, "isLValue": false, "isPure": false, @@ -3753,7 +6171,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2662:25:0", + "src": "3234:25:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3763,12 +6181,12 @@ { "arguments": [ { - "id": 290, + "id": 1605, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2743:7:0", + "referencedDeclaration": 1565, + "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3783,33 +6201,33 @@ } ], "expression": { - "id": 288, + "id": 1603, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2716:6:0", + "referencedDeclaration": 1575, + "src": "3288:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 289, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2723:19:0", + "memberLocation": "3295:19:2", "memberName": "balanceOfUnderlying", "nodeType": "MemberAccess", - "referencedDeclaration": 59, - "src": "2716:26:0", + "referencedDeclaration": 1329, + "src": "3288:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 291, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -3818,7 +6236,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2716:35:0", + "src": "3288:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3828,12 +6246,12 @@ { "arguments": [ { - "id": 294, + "id": 1609, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2804:7:0", + "referencedDeclaration": 1565, + "src": "3376:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3848,33 +6266,33 @@ } ], "expression": { - "id": 292, + "id": 1607, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2776:6:0", + "referencedDeclaration": 1575, + "src": "3348:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 293, + "id": 1608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2783:20:0", + "memberLocation": "3355:20:2", "memberName": "borrowBalanceCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 66, - "src": "2776:27:0", + "referencedDeclaration": 1336, + "src": "3348:27:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 295, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": false, @@ -3883,7 +6301,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2776:36:0", + "src": "3348:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3891,12 +6309,12 @@ } }, { - "id": 296, + "id": 1611, "name": "collateralFactor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "2840:16:0", + "referencedDeclaration": 1580, + "src": "3412:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3907,33 +6325,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 297, + "id": 1612, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2880:6:0", + "referencedDeclaration": 1575, + "src": "3452:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 298, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2887:19:0", + "memberLocation": "3459:19:2", "memberName": "exchangeRateCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 71, - "src": "2880:26:0", + "referencedDeclaration": 1341, + "src": "3452:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 299, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -3942,7 +6360,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2880:28:0", + "src": "3452:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3952,53 +6370,69 @@ { "arguments": [ { - "id": 302, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2956:6:0", + "expression": { + "id": 1617, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3515:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3529:17:2", + "memberName": "priceOracleSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 1465, + "src": "3515:31:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], "expression": { - "id": 300, + "id": 1615, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2925:11:0", + "referencedDeclaration": 1560, + "src": "3497:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, - "id": 301, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2937:18:0", - "memberName": "getUnderlyingPrice", + "memberLocation": "3509:5:2", + "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "2925:30:0", + "referencedDeclaration": 1430, + "src": "3497:17:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", - "typeString": "function (contract CToken) view external returns (uint256)" + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) view external returns (uint256)" } }, - "id": 303, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, @@ -4007,7 +6441,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2925:38:0", + "src": "3497:50:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4050,32 +6484,32 @@ "typeString": "uint256" } ], - "id": 274, + "id": 1589, "name": "CTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2540:14:0", + "referencedDeclaration": 1450, + "src": "3112:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" } }, - "id": 304, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2565:6:0", - "2598:9:0", - "2653:7:0", - "2697:17:0", - "2761:13:0", - "2822:16:0", - "2866:12:0", - "2918:5:0" + "3137:6:2", + "3170:9:2", + "3225:7:2", + "3269:17:2", + "3333:13:2", + "3394:16:2", + "3438:12:2", + "3490:5:2" ], "names": [ "cToken", @@ -4088,62 +6522,62 @@ "price" ], "nodeType": "FunctionCall", - "src": "2540:432:0", + "src": "3112:444:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "functionReturnParameters": 263, - "id": 305, + "functionReturnParameters": 1572, + "id": 1621, "nodeType": "Return", - "src": "2527:445:0" + "src": "3099:457:2" } ] }, - "functionSelector": "bc3b5005", + "functionSelector": "a72b45e0", "implemented": true, "kind": "function", "modifiers": [], "name": "cTokenMetadata", - "nameLocation": "2257:14:0", + "nameLocation": "2766:14:2", "parameters": { - "id": 259, + "id": 1568, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 248, + "id": 1557, "mutability": "mutable", "name": "comptroller", - "nameLocation": "2289:11:0", + "nameLocation": "2798:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2277:23:0", + "scope": 1623, + "src": "2786:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 247, + "id": 1556, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 246, + "id": 1555, "name": "Comptroller", "nameLocations": [ - "2277:11:0" + "2786:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "2277:11:0" + "referencedDeclaration": 1423, + "src": "2786:11:2" }, - "referencedDeclaration": 148, - "src": "2277:11:0", + "referencedDeclaration": 1423, + "src": "2786:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -4151,36 +6585,36 @@ }, { "constant": false, - "id": 251, + "id": 1560, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "2318:11:0", + "nameLocation": "2827:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2306:23:0", + "scope": 1623, + "src": "2815:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 250, + "id": 1559, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 249, + "id": 1558, "name": "PriceOracle", "nameLocations": [ - "2306:11:0" + "2815:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "2306:11:0" + "referencedDeclaration": 1431, + "src": "2815:11:2" }, - "referencedDeclaration": 157, - "src": "2306:11:0", + "referencedDeclaration": 1431, + "src": "2815:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, @@ -4188,50 +6622,50 @@ }, { "constant": false, - "id": 254, + "id": 1563, "mutability": "mutable", - "name": "cToken", - "nameLocation": "2342:6:0", + "name": "cTokenRequest", + "nameLocation": "2865:13:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2335:13:0", + "scope": 1623, + "src": "2844:34:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" }, "typeName": { - "id": 253, + "id": 1562, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 252, - "name": "CToken", + "id": 1561, + "name": "CTokenRequest", "nameLocations": [ - "2335:6:0" + "2844:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "2335:6:0" + "referencedDeclaration": 1466, + "src": "2844:13:2" }, - "referencedDeclaration": 72, - "src": "2335:6:0", + "referencedDeclaration": 1466, + "src": "2844:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, "visibility": "internal" }, { "constant": false, - "id": 256, + "id": 1565, "mutability": "mutable", "name": "account", - "nameLocation": "2370:7:0", + "nameLocation": "2900:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2354:23:0", + "scope": 1623, + "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4239,10 +6673,10 @@ "typeString": "address payable" }, "typeName": { - "id": 255, + "id": 1564, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2354:15:0", + "src": "2884:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4253,13 +6687,13 @@ }, { "constant": false, - "id": 258, + "id": 1567, "mutability": "mutable", "name": "spender", - "nameLocation": "2399:7:0", + "nameLocation": "2929:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2383:23:0", + "scope": 1623, + "src": "2913:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4267,10 +6701,10 @@ "typeString": "address payable" }, "typeName": { - "id": 257, + "id": 1566, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2383:15:0", + "src": "2913:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4280,74 +6714,91 @@ "visibility": "internal" } ], - "src": "2271:139:0" + "src": "2780:160:2" }, "returnParameters": { - "id": 263, + "id": 1572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 262, + "id": 1571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2427:21:0", + "scope": 1623, + "src": "2957:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" }, "typeName": { - "id": 261, + "id": 1570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 260, + "id": 1569, "name": "CTokenMetadata", "nameLocations": [ - "2427:14:0" + "2957:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2427:14:0" + "referencedDeclaration": 1450, + "src": "2957:14:2" }, - "referencedDeclaration": 174, - "src": "2427:14:0", + "referencedDeclaration": 1450, + "src": "2957:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, "visibility": "internal" } ], - "src": "2426:23:0" + "src": "2956:23:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "abstract": false, - "baseContracts": [], + "baseContracts": [ + { + "baseName": { + "id": 1432, + "name": "CometQuery", + "nameLocations": [ + "1611:10:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1611:10:2" + }, + "id": 1433, + "nodeType": "InheritanceSpecifier", + "src": "1611:10:2" + } + ], "canonicalName": "CompoundV2Query", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 308 + 1624, + 1268 ], "name": "CompoundV2Query", - "nameLocation": "1518:15:0", - "scope": 309, + "nameLocation": "1592:15:2", + "scope": 1625, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 0 + "id": 2 } \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json index 1aa3ab0..c0ba116 100644 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json @@ -216,7 +216,7 @@ "markets(address)": "8e8f294b", "oracle()": "7dc0d1d0" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimComp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compBorrowSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSupplySpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAccountLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAssetsIn\",\"outputs\":[{\"internalType\":\"contract CToken[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract PriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"Comptroller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimComp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compBorrowSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSupplySpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAccountLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAssetsIn\",\"outputs\":[{\"internalType\":\"contract CToken[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract PriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"Comptroller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -440,14 +440,23 @@ "compilationTarget": { "Sleuth/CompoundV2Query.sol": "Comptroller" }, - "libraries": {} + "libraries": {}, + "viaIR": true }, "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + }, "Sleuth/CompoundV2Query.sol": { - "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", "urls": [ - "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", - "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", + "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" ], "license": "UNLICENSED" } @@ -456,28 +465,37 @@ }, "ast": { "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 309, + "id": 1625, "exportedSymbols": { "CToken": [ - 72 + 1347 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 ], "CompoundV2Query": [ - 308 + 1624 ], "Comptroller": [ - 148 + 1423 + ], + "ERC20": [ + 630 ], "PriceOracle": [ - 157 + 1431 ] }, "nodeType": "SourceUnit", - "src": "39:2941:0", + "src": "39:3525:2", "nodes": [ { - "id": 1, + "id": 1270, "nodeType": "PragmaDirective", - "src": "39:24:0", + "src": "39:24:2", "literals": [ "solidity", "^", @@ -486,98 +504,110 @@ ] }, { - "id": 72, + "id": 1271, + "nodeType": "ImportDirective", + "src": "65:26:2", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 1625, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 1347, "nodeType": "ContractDefinition", - "src": "65:670:0", + "src": "93:723:2", "nodes": [ { - "id": 7, + "id": 1277, "nodeType": "FunctionDefinition", - "src": "86:54:0", + "src": "114:54:2", "functionSelector": "5fe3b567", "implemented": false, "kind": "function", "modifiers": [], "name": "comptroller", - "nameLocation": "95:11:0", + "nameLocation": "123:11:2", "parameters": { - "id": 2, + "id": 1272, "nodeType": "ParameterList", "parameters": [], - "src": "106:2:0" + "src": "134:2:2" }, "returnParameters": { - "id": 6, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5, + "id": 1275, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 7, - "src": "127:11:0", + "scope": 1277, + "src": "155:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 4, + "id": 1274, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3, + "id": 1273, "name": "Comptroller", "nameLocations": [ - "127:11:0" + "155:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "127:11:0" + "referencedDeclaration": 1423, + "src": "155:11:2" }, - "referencedDeclaration": 148, - "src": "127:11:0", + "referencedDeclaration": 1423, + "src": "155:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, "visibility": "internal" } ], - "src": "126:13:0" + "src": "154:13:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 16, + "id": 1286, "nodeType": "FunctionDefinition", - "src": "144:68:0", + "src": "172:68:2", "functionSelector": "a9059cbb", "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "153:8:0", + "nameLocation": "181:8:2", "parameters": { - "id": 12, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9, + "id": 1279, "mutability": "mutable", "name": "dst", - "nameLocation": "170:3:0", + "nameLocation": "198:3:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "162:11:0", + "scope": 1286, + "src": "190:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -585,10 +615,10 @@ "typeString": "address" }, "typeName": { - "id": 8, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", - "src": "162:7:0", + "src": "190:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -599,13 +629,13 @@ }, { "constant": false, - "id": 11, + "id": 1281, "mutability": "mutable", "name": "amount", - "nameLocation": "180:6:0", + "nameLocation": "208:6:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "175:11:0", + "scope": 1286, + "src": "203:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -613,10 +643,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10, + "id": 1280, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "175:4:0", + "src": "203:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -625,21 +655,21 @@ "visibility": "internal" } ], - "src": "161:26:0" + "src": "189:26:2" }, "returnParameters": { - "id": 15, + "id": 1285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 14, + "id": 1284, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "206:4:0", + "scope": 1286, + "src": "234:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -647,10 +677,10 @@ "typeString": "bool" }, "typeName": { - "id": 13, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "206:4:0", + "src": "234:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -659,36 +689,36 @@ "visibility": "internal" } ], - "src": "205:6:0" + "src": "233:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27, + "id": 1297, "nodeType": "FunctionDefinition", - "src": "216:85:0", + "src": "244:85:2", "functionSelector": "23b872dd", "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "225:12:0", + "nameLocation": "253:12:2", "parameters": { - "id": 23, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 1288, "mutability": "mutable", "name": "src", - "nameLocation": "246:3:0", + "nameLocation": "274:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "238:11:0", + "scope": 1297, + "src": "266:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -696,10 +726,10 @@ "typeString": "address" }, "typeName": { - "id": 17, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:0", + "src": "266:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -710,13 +740,13 @@ }, { "constant": false, - "id": 20, + "id": 1290, "mutability": "mutable", "name": "dst", - "nameLocation": "259:3:0", + "nameLocation": "287:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "251:11:0", + "scope": 1297, + "src": "279:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -724,10 +754,10 @@ "typeString": "address" }, "typeName": { - "id": 19, + "id": 1289, "name": "address", "nodeType": "ElementaryTypeName", - "src": "251:7:0", + "src": "279:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -738,13 +768,13 @@ }, { "constant": false, - "id": 22, + "id": 1292, "mutability": "mutable", "name": "amount", - "nameLocation": "269:6:0", + "nameLocation": "297:6:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "264:11:0", + "scope": 1297, + "src": "292:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -752,10 +782,10 @@ "typeString": "uint256" }, "typeName": { - "id": 21, + "id": 1291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "264:4:0", + "src": "292:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -764,21 +794,21 @@ "visibility": "internal" } ], - "src": "237:39:0" + "src": "265:39:2" }, "returnParameters": { - "id": 26, + "id": 1296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 1295, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "295:4:0", + "scope": 1297, + "src": "323:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -786,10 +816,10 @@ "typeString": "bool" }, "typeName": { - "id": 24, + "id": 1294, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "295:4:0", + "src": "323:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -798,36 +828,36 @@ "visibility": "internal" } ], - "src": "294:6:0" + "src": "322:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 36, + "id": 1306, "nodeType": "FunctionDefinition", - "src": "305:71:0", + "src": "333:71:2", "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "314:7:0", + "nameLocation": "342:7:2", "parameters": { - "id": 32, + "id": 1302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 1299, "mutability": "mutable", "name": "spender", - "nameLocation": "330:7:0", + "nameLocation": "358:7:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "322:15:0", + "scope": 1306, + "src": "350:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -835,10 +865,10 @@ "typeString": "address" }, "typeName": { - "id": 28, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", - "src": "322:7:0", + "src": "350:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -849,13 +879,13 @@ }, { "constant": false, - "id": 31, + "id": 1301, "mutability": "mutable", "name": "amount", - "nameLocation": "344:6:0", + "nameLocation": "372:6:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "339:11:0", + "scope": 1306, + "src": "367:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -863,10 +893,10 @@ "typeString": "uint256" }, "typeName": { - "id": 30, + "id": 1300, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "339:4:0", + "src": "367:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -875,21 +905,21 @@ "visibility": "internal" } ], - "src": "321:30:0" + "src": "349:30:2" }, "returnParameters": { - "id": 35, + "id": 1305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34, + "id": 1304, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "370:4:0", + "scope": 1306, + "src": "398:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -897,10 +927,10 @@ "typeString": "bool" }, "typeName": { - "id": 33, + "id": 1303, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "370:4:0", + "src": "398:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -909,36 +939,36 @@ "visibility": "internal" } ], - "src": "369:6:0" + "src": "397:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45, + "id": 1315, "nodeType": "FunctionDefinition", - "src": "380:80:0", + "src": "408:80:2", "functionSelector": "dd62ed3e", "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", - "nameLocation": "389:9:0", + "nameLocation": "417:9:2", "parameters": { - "id": 41, + "id": 1311, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38, + "id": 1308, "mutability": "mutable", "name": "owner", - "nameLocation": "407:5:0", + "nameLocation": "435:5:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "399:13:0", + "scope": 1315, + "src": "427:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -946,10 +976,10 @@ "typeString": "address" }, "typeName": { - "id": 37, + "id": 1307, "name": "address", "nodeType": "ElementaryTypeName", - "src": "399:7:0", + "src": "427:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -960,13 +990,13 @@ }, { "constant": false, - "id": 40, + "id": 1310, "mutability": "mutable", "name": "spender", - "nameLocation": "422:7:0", + "nameLocation": "450:7:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "414:15:0", + "scope": 1315, + "src": "442:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -974,10 +1004,10 @@ "typeString": "address" }, "typeName": { - "id": 39, + "id": 1309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "414:7:0", + "src": "442:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -987,21 +1017,21 @@ "visibility": "internal" } ], - "src": "398:32:0" + "src": "426:32:2" }, "returnParameters": { - "id": 44, + "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 1313, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "454:4:0", + "scope": 1315, + "src": "482:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1009,10 +1039,10 @@ "typeString": "uint256" }, "typeName": { - "id": 42, + "id": 1312, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "454:4:0", + "src": "482:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1021,36 +1051,36 @@ "visibility": "internal" } ], - "src": "453:6:0" + "src": "481:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 52, + "id": 1322, "nodeType": "FunctionDefinition", - "src": "464:63:0", + "src": "492:63:2", "functionSelector": "70a08231", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "473:9:0", + "nameLocation": "501:9:2", "parameters": { - "id": 48, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 47, + "id": 1317, "mutability": "mutable", "name": "owner", - "nameLocation": "491:5:0", + "nameLocation": "519:5:2", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "483:13:0", + "scope": 1322, + "src": "511:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1058,10 +1088,10 @@ "typeString": "address" }, "typeName": { - "id": 46, + "id": 1316, "name": "address", "nodeType": "ElementaryTypeName", - "src": "483:7:0", + "src": "511:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1071,21 +1101,21 @@ "visibility": "internal" } ], - "src": "482:15:0" + "src": "510:15:2" }, "returnParameters": { - "id": 51, + "id": 1321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 50, + "id": 1320, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "521:4:0", + "scope": 1322, + "src": "549:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1123,10 @@ "typeString": "uint256" }, "typeName": { - "id": 49, + "id": 1319, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "521:4:0", + "src": "549:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1105,36 +1135,36 @@ "visibility": "internal" } ], - "src": "520:6:0" + "src": "548:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59, + "id": 1329, "nodeType": "FunctionDefinition", - "src": "531:68:0", + "src": "559:68:2", "functionSelector": "3af9e669", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOfUnderlying", - "nameLocation": "540:19:0", + "nameLocation": "568:19:2", "parameters": { - "id": 55, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54, + "id": 1324, "mutability": "mutable", "name": "owner", - "nameLocation": "568:5:0", + "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "560:13:0", + "scope": 1329, + "src": "588:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1142,10 +1172,10 @@ "typeString": "address" }, "typeName": { - "id": 53, + "id": 1323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "560:7:0", + "src": "588:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1155,21 +1185,21 @@ "visibility": "internal" } ], - "src": "559:15:0" + "src": "587:15:2" }, "returnParameters": { - "id": 58, + "id": 1328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 57, + "id": 1327, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "593:4:0", + "scope": 1329, + "src": "621:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1177,10 +1207,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 1326, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "593:4:0", + "src": "621:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1189,36 +1219,36 @@ "visibility": "internal" } ], - "src": "592:6:0" + "src": "620:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 66, + "id": 1336, "nodeType": "FunctionDefinition", - "src": "603:71:0", + "src": "631:71:2", "functionSelector": "17bfdfbc", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowBalanceCurrent", - "nameLocation": "612:20:0", + "nameLocation": "640:20:2", "parameters": { - "id": 62, + "id": 1332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 61, + "id": 1331, "mutability": "mutable", "name": "account", - "nameLocation": "641:7:0", + "nameLocation": "669:7:2", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "633:15:0", + "scope": 1336, + "src": "661:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1226,10 +1256,10 @@ "typeString": "address" }, "typeName": { - "id": 60, + "id": 1330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "633:7:0", + "src": "661:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1239,21 +1269,21 @@ "visibility": "internal" } ], - "src": "632:17:0" + "src": "660:17:2" }, "returnParameters": { - "id": 65, + "id": 1335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 64, + "id": 1334, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "668:4:0", + "scope": 1336, + "src": "696:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1261,10 +1291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 63, + "id": 1333, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "668:4:0", + "src": "696:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1273,42 +1303,42 @@ "visibility": "internal" } ], - "src": "667:6:0" + "src": "695:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 71, + "id": 1341, "nodeType": "FunctionDefinition", - "src": "678:55:0", + "src": "706:55:2", "functionSelector": "bd6d894d", "implemented": false, "kind": "function", "modifiers": [], "name": "exchangeRateCurrent", - "nameLocation": "687:19:0", + "nameLocation": "715:19:2", "parameters": { - "id": 67, + "id": 1337, "nodeType": "ParameterList", "parameters": [], - "src": "706:2:0" + "src": "734:2:2" }, "returnParameters": { - "id": 70, + "id": 1340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 69, + "id": 1339, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 71, - "src": "727:4:0", + "scope": 1341, + "src": "755:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1316,10 +1346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 68, + "id": 1338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "727:4:0", + "src": "755:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1328,9 +1358,65 @@ "visibility": "internal" } ], - "src": "726:6:0" + "src": "754:6:2" }, - "scope": 72, + "scope": 1347, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 1346, + "nodeType": "FunctionDefinition", + "src": "765:49:2", + "functionSelector": "6f307dc3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "underlying", + "nameLocation": "774:10:2", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [], + "src": "784:2:2" + }, + "returnParameters": { + "id": 1345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "805:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "804:9:2" + }, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -1343,41 +1429,41 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 72 + 1347 ], "name": "CToken", - "nameLocation": "75:6:0", - "scope": 309, + "nameLocation": "103:6:2", + "scope": 1625, "usedErrors": [] }, { - "id": 148, + "id": 1423, "nodeType": "ContractDefinition", - "src": "737:668:0", + "src": "818:668:2", "nodes": [ { - "id": 81, + "id": 1356, "nodeType": "FunctionDefinition", - "src": "763:61:0", + "src": "844:61:2", "functionSelector": "8e8f294b", "implemented": false, "kind": "function", "modifiers": [], "name": "markets", - "nameLocation": "772:7:0", + "nameLocation": "853:7:2", "parameters": { - "id": 75, + "id": 1350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 74, + "id": 1349, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "780:7:0", + "scope": 1356, + "src": "861:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1385,10 +1471,10 @@ "typeString": "address" }, "typeName": { - "id": 73, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", - "src": "780:7:0", + "src": "861:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1398,21 +1484,21 @@ "visibility": "internal" } ], - "src": "779:9:0" + "src": "860:9:2" }, "returnParameters": { - "id": 80, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 77, + "id": 1352, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "812:4:0", + "scope": 1356, + "src": "893:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1420,10 +1506,10 @@ "typeString": "bool" }, "typeName": { - "id": 76, + "id": 1351, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "812:4:0", + "src": "893:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1433,13 +1519,13 @@ }, { "constant": false, - "id": 79, + "id": 1354, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "818:4:0", + "scope": 1356, + "src": "899:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1447,10 +1533,10 @@ "typeString": "uint256" }, "typeName": { - "id": 78, + "id": 1353, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:0", + "src": "899:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1459,101 +1545,101 @@ "visibility": "internal" } ], - "src": "811:12:0" + "src": "892:12:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 87, + "id": 1362, "nodeType": "FunctionDefinition", - "src": "828:54:0", + "src": "909:54:2", "functionSelector": "7dc0d1d0", "implemented": false, "kind": "function", "modifiers": [], "name": "oracle", - "nameLocation": "837:6:0", + "nameLocation": "918:6:2", "parameters": { - "id": 82, + "id": 1357, "nodeType": "ParameterList", "parameters": [], - "src": "843:2:0" + "src": "924:2:2" }, "returnParameters": { - "id": 86, + "id": 1361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 85, + "id": 1360, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 87, - "src": "869:11:0", + "scope": 1362, + "src": "950:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 84, + "id": 1359, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 83, + "id": 1358, "name": "PriceOracle", "nameLocations": [ - "869:11:0" + "950:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "869:11:0" + "referencedDeclaration": 1431, + "src": "950:11:2" }, - "referencedDeclaration": 157, - "src": "869:11:0", + "referencedDeclaration": 1431, + "src": "950:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "src": "868:13:0" + "src": "949:13:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 98, + "id": 1373, "nodeType": "FunctionDefinition", - "src": "886:79:0", + "src": "967:79:2", "functionSelector": "5ec88c79", "implemented": false, "kind": "function", "modifiers": [], "name": "getAccountLiquidity", - "nameLocation": "895:19:0", + "nameLocation": "976:19:2", "parameters": { - "id": 90, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 89, + "id": 1364, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "915:7:0", + "scope": 1373, + "src": "996:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1561,10 +1647,10 @@ "typeString": "address" }, "typeName": { - "id": 88, + "id": 1363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "915:7:0", + "src": "996:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1574,21 +1660,21 @@ "visibility": "internal" } ], - "src": "914:9:0" + "src": "995:9:2" }, "returnParameters": { - "id": 97, + "id": 1372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 92, + "id": 1367, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "947:4:0", + "scope": 1373, + "src": "1028:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1596,10 +1682,10 @@ "typeString": "uint256" }, "typeName": { - "id": 91, + "id": 1366, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "947:4:0", + "src": "1028:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1609,13 +1695,13 @@ }, { "constant": false, - "id": 94, + "id": 1369, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "953:4:0", + "scope": 1373, + "src": "1034:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1623,10 +1709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 93, + "id": 1368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "953:4:0", + "src": "1034:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1636,13 +1722,13 @@ }, { "constant": false, - "id": 96, + "id": 1371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "959:4:0", + "scope": 1373, + "src": "1040:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1650,10 +1736,10 @@ "typeString": "uint256" }, "typeName": { - "id": 95, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "959:4:0", + "src": "1040:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1662,36 +1748,36 @@ "visibility": "internal" } ], - "src": "946:18:0" + "src": "1027:18:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 107, + "id": 1382, "nodeType": "FunctionDefinition", - "src": "969:70:0", + "src": "1050:70:2", "functionSelector": "abfceffc", "implemented": false, "kind": "function", "modifiers": [], "name": "getAssetsIn", - "nameLocation": "978:11:0", + "nameLocation": "1059:11:2", "parameters": { - "id": 101, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 1375, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "990:7:0", + "scope": 1382, + "src": "1071:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1699,10 +1785,10 @@ "typeString": "address" }, "typeName": { - "id": 99, + "id": 1374, "name": "address", "nodeType": "ElementaryTypeName", - "src": "990:7:0", + "src": "1071:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1712,89 +1798,89 @@ "visibility": "internal" } ], - "src": "989:9:0" + "src": "1070:9:2" }, "returnParameters": { - "id": 106, + "id": 1381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 105, + "id": 1380, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "1022:15:0", + "scope": 1382, + "src": "1103:15:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", "typeString": "contract CToken[]" }, "typeName": { "baseType": { - "id": 103, + "id": 1378, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 102, + "id": 1377, "name": "CToken", "nameLocations": [ - "1022:6:0" + "1103:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1022:6:0" + "referencedDeclaration": 1347, + "src": "1103:6:2" }, - "referencedDeclaration": 72, - "src": "1022:6:0", + "referencedDeclaration": 1347, + "src": "1103:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 104, + "id": 1379, "nodeType": "ArrayTypeName", - "src": "1022:8:0", + "src": "1103:8:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", "typeString": "contract CToken[]" } }, "visibility": "internal" } ], - "src": "1021:17:0" + "src": "1102:17:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 112, + "id": 1387, "nodeType": "FunctionDefinition", - "src": "1043:37:0", + "src": "1124:37:2", "functionSelector": "e9af0292", "implemented": false, "kind": "function", "modifiers": [], "name": "claimComp", - "nameLocation": "1052:9:0", + "nameLocation": "1133:9:2", "parameters": { - "id": 110, + "id": 1385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 109, + "id": 1384, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1062:7:0", + "scope": 1387, + "src": "1143:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1802,10 +1888,10 @@ "typeString": "address" }, "typeName": { - "id": 108, + "id": 1383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1062:7:0", + "src": "1143:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1815,42 +1901,42 @@ "visibility": "internal" } ], - "src": "1061:9:0" + "src": "1142:9:2" }, "returnParameters": { - "id": 111, + "id": 1386, "nodeType": "ParameterList", "parameters": [], - "src": "1079:0:0" + "src": "1160:0:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 119, + "id": 1394, "nodeType": "FunctionDefinition", - "src": "1084:59:0", + "src": "1165:59:2", "functionSelector": "cc7ebdc4", "implemented": false, "kind": "function", "modifiers": [], "name": "compAccrued", - "nameLocation": "1093:11:0", + "nameLocation": "1174:11:2", "parameters": { - "id": 115, + "id": 1390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 114, + "id": 1389, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1105:7:0", + "scope": 1394, + "src": "1186:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1858,10 +1944,10 @@ "typeString": "address" }, "typeName": { - "id": 113, + "id": 1388, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1105:7:0", + "src": "1186:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1871,21 +1957,21 @@ "visibility": "internal" } ], - "src": "1104:9:0" + "src": "1185:9:2" }, "returnParameters": { - "id": 118, + "id": 1393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 117, + "id": 1392, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1137:4:0", + "scope": 1394, + "src": "1218:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1893,10 +1979,10 @@ "typeString": "uint256" }, "typeName": { - "id": 116, + "id": 1391, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:0", + "src": "1218:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1905,36 +1991,36 @@ "visibility": "internal" } ], - "src": "1136:6:0" + "src": "1217:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 126, + "id": 1401, "nodeType": "FunctionDefinition", - "src": "1147:58:0", + "src": "1228:58:2", "functionSelector": "1d7b33d7", "implemented": false, "kind": "function", "modifiers": [], "name": "compSpeeds", - "nameLocation": "1156:10:0", + "nameLocation": "1237:10:2", "parameters": { - "id": 122, + "id": 1397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 121, + "id": 1396, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1167:7:0", + "scope": 1401, + "src": "1248:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1942,10 +2028,10 @@ "typeString": "address" }, "typeName": { - "id": 120, + "id": 1395, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1167:7:0", + "src": "1248:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1955,21 +2041,21 @@ "visibility": "internal" } ], - "src": "1166:9:0" + "src": "1247:9:2" }, "returnParameters": { - "id": 125, + "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 1399, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1199:4:0", + "scope": 1401, + "src": "1280:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1977,10 +2063,10 @@ "typeString": "uint256" }, "typeName": { - "id": 123, + "id": 1398, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1199:4:0", + "src": "1280:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1989,36 +2075,36 @@ "visibility": "internal" } ], - "src": "1198:6:0" + "src": "1279:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 133, + "id": 1408, "nodeType": "FunctionDefinition", - "src": "1209:64:0", + "src": "1290:64:2", "functionSelector": "6aa875b5", "implemented": false, "kind": "function", "modifiers": [], "name": "compSupplySpeeds", - "nameLocation": "1218:16:0", + "nameLocation": "1299:16:2", "parameters": { - "id": 129, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 128, + "id": 1403, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1235:7:0", + "scope": 1408, + "src": "1316:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2026,10 +2112,10 @@ "typeString": "address" }, "typeName": { - "id": 127, + "id": 1402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1235:7:0", + "src": "1316:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2039,21 +2125,21 @@ "visibility": "internal" } ], - "src": "1234:9:0" + "src": "1315:9:2" }, "returnParameters": { - "id": 132, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 131, + "id": 1406, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1267:4:0", + "scope": 1408, + "src": "1348:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2061,10 +2147,10 @@ "typeString": "uint256" }, "typeName": { - "id": 130, + "id": 1405, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1267:4:0", + "src": "1348:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2073,36 +2159,36 @@ "visibility": "internal" } ], - "src": "1266:6:0" + "src": "1347:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 140, + "id": 1415, "nodeType": "FunctionDefinition", - "src": "1277:64:0", + "src": "1358:64:2", "functionSelector": "f4a433c0", "implemented": false, "kind": "function", "modifiers": [], "name": "compBorrowSpeeds", - "nameLocation": "1286:16:0", + "nameLocation": "1367:16:2", "parameters": { - "id": 136, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 135, + "id": 1410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1303:7:0", + "scope": 1415, + "src": "1384:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2110,10 +2196,10 @@ "typeString": "address" }, "typeName": { - "id": 134, + "id": 1409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1303:7:0", + "src": "1384:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2123,21 +2209,21 @@ "visibility": "internal" } ], - "src": "1302:9:0" + "src": "1383:9:2" }, "returnParameters": { - "id": 139, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 138, + "id": 1413, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1335:4:0", + "scope": 1415, + "src": "1416:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2145,10 +2231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 137, + "id": 1412, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1335:4:0", + "src": "1416:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2157,36 +2243,36 @@ "visibility": "internal" } ], - "src": "1334:6:0" + "src": "1415:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 147, + "id": 1422, "nodeType": "FunctionDefinition", - "src": "1345:58:0", + "src": "1426:58:2", "functionSelector": "4a584432", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowCaps", - "nameLocation": "1354:10:0", + "nameLocation": "1435:10:2", "parameters": { - "id": 143, + "id": 1418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 142, + "id": 1417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1365:7:0", + "scope": 1422, + "src": "1446:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2194,10 +2280,10 @@ "typeString": "address" }, "typeName": { - "id": 141, + "id": 1416, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1365:7:0", + "src": "1446:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2207,21 +2293,21 @@ "visibility": "internal" } ], - "src": "1364:9:0" + "src": "1445:9:2" }, "returnParameters": { - "id": 146, + "id": 1421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 1420, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1397:4:0", + "scope": 1422, + "src": "1478:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2229,10 +2315,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 1419, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1397:4:0", + "src": "1478:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2241,9 +2327,9 @@ "visibility": "internal" } ], - "src": "1396:6:0" + "src": "1477:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2256,85 +2342,75 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 148 + 1423 ], "name": "Comptroller", - "nameLocation": "747:11:0", - "scope": 309, + "nameLocation": "828:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 157, + "id": 1431, "nodeType": "ContractDefinition", - "src": "1407:100:0", + "src": "1488:93:2", "nodes": [ { - "id": 156, + "id": 1430, "nodeType": "FunctionDefinition", - "src": "1433:72:0", - "functionSelector": "fc57d4df", + "src": "1514:65:2", + "functionSelector": "fe2c6198", "implemented": false, "kind": "function", "modifiers": [], - "name": "getUnderlyingPrice", - "nameLocation": "1442:18:0", + "name": "price", + "nameLocation": "1523:5:2", "parameters": { - "id": 152, + "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, + "id": 1425, "mutability": "mutable", - "name": "cToken", - "nameLocation": "1468:6:0", + "name": "price", + "nameLocation": "1543:5:2", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1461:13:0", + "scope": 1430, + "src": "1529:19:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 150, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 149, - "name": "CToken", - "nameLocations": [ - "1461:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1461:6:0" - }, - "referencedDeclaration": 72, - "src": "1461:6:0", + "id": 1424, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1529:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "1460:15:0" + "src": "1528:21:2" }, "returnParameters": { - "id": 155, + "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 154, + "id": 1428, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1499:4:0", + "scope": 1430, + "src": "1573:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2342,10 +2418,10 @@ "typeString": "uint256" }, "typeName": { - "id": 153, + "id": 1427, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1499:4:0", + "src": "1573:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2354,9 +2430,9 @@ "visibility": "internal" } ], - "src": "1498:6:0" + "src": "1572:6:2" }, - "scope": 157, + "scope": 1431, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2369,33 +2445,33 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 157 + 1431 ], "name": "PriceOracle", - "nameLocation": "1417:11:0", - "scope": 309, + "nameLocation": "1498:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 308, + "id": 1624, "nodeType": "ContractDefinition", - "src": "1509:1470:0", + "src": "1583:1980:2", "nodes": [ { - "id": 174, + "id": 1450, "nodeType": "StructDefinition", - "src": "1538:203:0", + "src": "1626:203:2", "canonicalName": "CompoundV2Query.CTokenMetadata", "members": [ { "constant": false, - "id": 159, + "id": 1435, "mutability": "mutable", "name": "cToken", - "nameLocation": "1574:6:0", + "nameLocation": "1662:6:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1566:14:0", + "scope": 1450, + "src": "1654:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2403,10 +2479,10 @@ "typeString": "address" }, "typeName": { - "id": 158, + "id": 1434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1566:7:0", + "src": "1654:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2417,13 +2493,13 @@ }, { "constant": false, - "id": 161, + "id": 1437, "mutability": "mutable", "name": "allowance", - "nameLocation": "1591:9:0", + "nameLocation": "1679:9:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1586:14:0", + "scope": 1450, + "src": "1674:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2431,10 +2507,10 @@ "typeString": "uint256" }, "typeName": { - "id": 160, + "id": 1436, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1586:4:0", + "src": "1674:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2444,13 +2520,13 @@ }, { "constant": false, - "id": 163, + "id": 1439, "mutability": "mutable", "name": "balance", - "nameLocation": "1611:7:0", + "nameLocation": "1699:7:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1606:12:0", + "scope": 1450, + "src": "1694:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2458,10 +2534,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 1438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1606:4:0", + "src": "1694:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2471,13 +2547,13 @@ }, { "constant": false, - "id": 165, + "id": 1441, "mutability": "mutable", "name": "balanceUnderlying", - "nameLocation": "1629:17:0", + "nameLocation": "1717:17:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1624:22:0", + "scope": 1450, + "src": "1712:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2485,10 +2561,10 @@ "typeString": "uint256" }, "typeName": { - "id": 164, + "id": 1440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1624:4:0", + "src": "1712:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2498,13 +2574,13 @@ }, { "constant": false, - "id": 167, + "id": 1443, "mutability": "mutable", "name": "borrowBalance", - "nameLocation": "1657:13:0", + "nameLocation": "1745:13:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1652:18:0", + "scope": 1450, + "src": "1740:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2512,10 +2588,10 @@ "typeString": "uint256" }, "typeName": { - "id": 166, + "id": 1442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1652:4:0", + "src": "1740:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2525,13 +2601,13 @@ }, { "constant": false, - "id": 169, + "id": 1445, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "1681:16:0", + "nameLocation": "1769:16:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1676:21:0", + "scope": 1450, + "src": "1764:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2539,10 +2615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 1444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1676:4:0", + "src": "1764:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2552,13 +2628,13 @@ }, { "constant": false, - "id": 171, + "id": 1447, "mutability": "mutable", "name": "exchangeRate", - "nameLocation": "1708:12:0", + "nameLocation": "1796:12:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1703:17:0", + "scope": 1450, + "src": "1791:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2566,10 +2642,10 @@ "typeString": "uint256" }, "typeName": { - "id": 170, + "id": 1446, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1703:4:0", + "src": "1791:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2579,13 +2655,13 @@ }, { "constant": false, - "id": 173, + "id": 1449, "mutability": "mutable", "name": "price", - "nameLocation": "1731:5:0", + "nameLocation": "1819:5:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1726:10:0", + "scope": 1450, + "src": "1814:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2593,10 +2669,10 @@ "typeString": "uint256" }, "typeName": { - "id": 172, + "id": 1448, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1726:4:0", + "src": "1814:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2606,95 +2682,293 @@ } ], "name": "CTokenMetadata", - "nameLocation": "1545:14:0", - "scope": 308, + "nameLocation": "1633:14:2", + "scope": 1624, "visibility": "public" }, { - "id": 245, + "id": 1460, + "nodeType": "StructDefinition", + "src": "1833:124:2", + "canonicalName": "CompoundV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1865:15:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1860:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1860:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1456, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1903:6:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1886:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 1454, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1453, + "name": "CTokenMetadata", + "nameLocations": [ + "1886:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1450, + "src": "1886:14:2" + }, + "referencedDeclaration": 1450, + "src": "1886:14:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 1455, + "nodeType": "ArrayTypeName", + "src": "1886:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1942:10:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1915:37:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 1458, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1457, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1915:26:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1915:26:2" + }, + "referencedDeclaration": 789, + "src": "1915:26:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1840:13:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1466, + "nodeType": "StructDefinition", + "src": "1961:75:2", + "canonicalName": "CompoundV2Query.CTokenRequest", + "members": [ + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1995:6:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "1988:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1461, + "name": "CToken", + "nameLocations": [ + "1988:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1988:6:2" + }, + "referencedDeclaration": 1347, + "src": "1988:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "priceOracleSymbol", + "nameLocation": "2014:17:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2007:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1464, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2007:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenRequest", + "nameLocation": "1968:13:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1554, "nodeType": "FunctionDefinition", - "src": "1745:499:0", + "src": "2040:713:2", "body": { - "id": 244, + "id": 1553, "nodeType": "Block", - "src": "1925:319:0", + "src": "2251:502:2", "statements": [ { "assignments": [ - 194 + 1488 ], "declarations": [ { "constant": false, - "id": 194, + "id": 1488, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "1943:11:0", + "nameLocation": "2269:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1931:23:0", + "scope": 1553, + "src": "2257:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 193, + "id": 1487, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 192, + "id": 1486, "name": "PriceOracle", "nameLocations": [ - "1931:11:0" + "2257:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "1931:11:0" + "referencedDeclaration": 1431, + "src": "2257:11:2" }, - "referencedDeclaration": 157, - "src": "1931:11:0", + "referencedDeclaration": 1431, + "src": "2257:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "id": 198, + "id": 1492, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 195, + "id": 1489, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "1957:11:0", + "referencedDeclaration": 1469, + "src": "2283:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 196, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1969:6:0", + "memberLocation": "2295:6:2", "memberName": "oracle", "nodeType": "MemberAccess", - "referencedDeclaration": 87, - "src": "1957:18:0", + "referencedDeclaration": 1362, + "src": "2283:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", "typeString": "function () view external returns (contract PriceOracle)" } }, - "id": 197, + "id": 1491, "isConstant": false, "isLValue": false, "isPure": false, @@ -2703,30 +2977,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1957:20:0", + "src": "2283:20:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "nodeType": "VariableDeclarationStatement", - "src": "1931:46:0" + "src": "2257:46:2" }, { "assignments": [ - 200 + 1494 ], "declarations": [ { "constant": false, - "id": 200, + "id": 1494, "mutability": "mutable", "name": "cTokenCount", - "nameLocation": "1988:11:0", + "nameLocation": "2314:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1983:16:0", + "scope": 1553, + "src": "2309:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2734,10 +3008,10 @@ "typeString": "uint256" }, "typeName": { - "id": 199, + "id": 1493, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:0", + "src": "2309:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2746,99 +3020,99 @@ "visibility": "internal" } ], - "id": 203, + "id": 1497, "initialValue": { "expression": { - "id": 201, + "id": 1495, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2002:7:0", + "referencedDeclaration": 1476, + "src": "2328:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 202, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2010:6:0", + "memberLocation": "2336:6:2", "memberName": "length", "nodeType": "MemberAccess", - "src": "2002:14:0", + "src": "2328:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1983:33:0" + "src": "2309:33:2" }, { "assignments": [ - 208 + 1502 ], "declarations": [ { "constant": false, - "id": 208, + "id": 1502, "mutability": "mutable", - "name": "res", - "nameLocation": "2046:3:0", + "name": "tokens", + "nameLocation": "2372:6:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2022:27:0", + "scope": 1553, + "src": "2348:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 206, + "id": 1500, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 205, + "id": 1499, "name": "CTokenMetadata", "nameLocations": [ - "2022:14:0" + "2348:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2022:14:0" + "referencedDeclaration": 1450, + "src": "2348:14:2" }, - "referencedDeclaration": 174, - "src": "2022:14:0", + "referencedDeclaration": 1450, + "src": "2348:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 207, + "id": 1501, "nodeType": "ArrayTypeName", - "src": "2022:16:0", + "src": "2348:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, "visibility": "internal" } ], - "id": 215, + "id": 1509, "initialValue": { "arguments": [ { - "id": 213, + "id": 1507, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2073:11:0", + "referencedDeclaration": 1494, + "src": "2402:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2852,48 +3126,48 @@ "typeString": "uint256" } ], - "id": 212, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "2052:20:0", + "src": "2381:20:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 210, + "id": 1504, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 209, + "id": 1503, "name": "CTokenMetadata", "nameLocations": [ - "2056:14:0" + "2385:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2056:14:0" + "referencedDeclaration": 1450, + "src": "2385:14:2" }, - "referencedDeclaration": 174, - "src": "2056:14:0", + "referencedDeclaration": 1450, + "src": "2385:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 211, + "id": 1505, "nodeType": "ArrayTypeName", - "src": "2056:16:0", + "src": "2385:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } } }, - "id": 214, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2902,50 +3176,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2052:33:0", + "src": "2381:33:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2022:63:0" + "src": "2348:66:2" }, { "body": { - "id": 240, + "id": 1534, "nodeType": "Block", - "src": "2130:94:0", + "src": "2459:97:2", "statements": [ { "expression": { - "id": 238, + "id": 1532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 226, - "name": "res", + "id": 1520, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2138:3:0", + "referencedDeclaration": 1502, + "src": "2467:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, - "id": 228, + "id": 1522, "indexExpression": { - "id": 227, + "id": 1521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2142:1:0", + "referencedDeclaration": 1511, + "src": "2474:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2956,9 +3230,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2138:6:0", + "src": "2467:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, @@ -2967,50 +3241,50 @@ "rightHandSide": { "arguments": [ { - "id": 230, + "id": 1524, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2162:11:0", + "referencedDeclaration": 1469, + "src": "2494:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, { - "id": 231, + "id": 1525, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "2175:11:0", + "referencedDeclaration": 1488, + "src": "2507:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, { "baseExpression": { - "id": 232, + "id": 1526, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2188:7:0", + "referencedDeclaration": 1476, + "src": "2520:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 234, + "id": 1528, "indexExpression": { - "id": 233, + "id": 1527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2196:1:0", + "referencedDeclaration": 1511, + "src": "2528:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3021,31 +3295,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2188:10:0", + "src": "2520:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" } }, { - "id": 235, + "id": 1529, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2200:7:0", + "referencedDeclaration": 1478, + "src": "2532:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 236, + "id": 1530, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2209:7:0", + "referencedDeclaration": 1480, + "src": "2541:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3055,16 +3329,16 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" }, { "typeIdentifier": "t_address_payable", @@ -3075,18 +3349,18 @@ "typeString": "address payable" } ], - "id": 229, + "id": 1523, "name": "cTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 307, - "src": "2147:14:0", + "referencedDeclaration": 1623, + "src": "2479:14:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" } }, - "id": 237, + "id": 1531, "isConstant": false, "isLValue": false, "isPure": false, @@ -3095,22 +3369,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2147:70:0", + "src": "2479:70:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "src": "2138:79:0", + "src": "2467:82:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "id": 239, + "id": 1533, "nodeType": "ExpressionStatement", - "src": "2138:79:0" + "src": "2467:82:2" } ] }, @@ -3119,18 +3393,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 222, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 220, + "id": 1514, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2108:1:0", + "referencedDeclaration": 1511, + "src": "2437:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3139,38 +3413,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 221, + "id": 1515, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2112:11:0", + "referencedDeclaration": 1494, + "src": "2441:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2108:15:0", + "src": "2437:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 241, + "id": 1535, "initializationExpression": { "assignments": [ - 217 + 1511 ], "declarations": [ { "constant": false, - "id": 217, + "id": 1511, "mutability": "mutable", "name": "i", - "nameLocation": "2101:1:0", + "nameLocation": "2430:1:2", "nodeType": "VariableDeclaration", - "scope": 241, - "src": "2096:6:0", + "scope": 1535, + "src": "2425:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3178,10 +3452,10 @@ "typeString": "uint256" }, "typeName": { - "id": 216, + "id": 1510, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2096:4:0", + "src": "2425:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3190,17 +3464,17 @@ "visibility": "internal" } ], - "id": 219, + "id": 1513, "initialValue": { "hexValue": "30", - "id": 218, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2105:1:0", + "src": "2434:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3208,11 +3482,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2096:10:0" + "src": "2425:10:2" }, "loopExpression": { "expression": { - "id": 224, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": false, @@ -3220,14 +3494,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2125:3:0", + "src": "2454:3:2", "subExpression": { - "id": 223, + "id": 1517, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2125:1:0", + "referencedDeclaration": 1511, + "src": "2454:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3238,75 +3512,340 @@ "typeString": "uint256" } }, - "id": 225, + "id": 1519, "nodeType": "ExpressionStatement", - "src": "2125:3:0" + "src": "2454:3:2" }, "nodeType": "ForStatement", - "src": "2091:133:0" + "src": "2420:136:2" }, { "expression": { - "id": 242, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2236:3:0", + "arguments": [ + { + "arguments": [ + { + "id": 1539, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2632:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1540, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1480, + "src": "2641:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1537, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2616:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2622:9:2", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2616:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2616:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1542, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "2667:6:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 1544, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2712:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 1545, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2719:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2736:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2728:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2728:8:2", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1543, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2695:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2695:44:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + ], + "id": 1536, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2575:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" + } + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2599:15:2", + "2659:6:2", + "2683:10:2" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState" + ], + "nodeType": "FunctionCall", + "src": "2575:173:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse memory" } }, - "functionReturnParameters": 191, - "id": 243, + "functionReturnParameters": 1485, + "id": 1552, "nodeType": "Return", - "src": "2229:10:0" + "src": "2562:186:2" } ] }, - "functionSelector": "0637ff4b", + "functionSelector": "61d11a6e", "implemented": true, "kind": "function", "modifiers": [], - "name": "query", - "nameLocation": "1754:5:0", + "name": "getMigratorData", + "nameLocation": "2049:15:2", "parameters": { - "id": 186, + "id": 1481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 177, + "id": 1469, "mutability": "mutable", "name": "comptroller", - "nameLocation": "1777:11:0", + "nameLocation": "2082:11:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1765:23:0", + "scope": 1554, + "src": "2070:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 176, + "id": 1468, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 175, + "id": 1467, "name": "Comptroller", "nameLocations": [ - "1765:11:0" + "2070:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "1765:11:0" + "referencedDeclaration": 1423, + "src": "2070:11:2" }, - "referencedDeclaration": 148, - "src": "1765:11:0", + "referencedDeclaration": 1423, + "src": "2070:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -3314,59 +3853,96 @@ }, { "constant": false, - "id": 181, + "id": 1472, + "mutability": "mutable", + "name": "comet", + "nameLocation": "2105:5:2", + "nodeType": "VariableDeclaration", + "scope": 1554, + "src": "2099:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1471, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1470, + "name": "Comet", + "nameLocations": [ + "2099:5:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "2099:5:2" + }, + "referencedDeclaration": 598, + "src": "2099:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1476, "mutability": "mutable", "name": "cTokens", - "nameLocation": "1812:7:0", + "nameLocation": "2141:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1794:25:0", + "scope": 1554, + "src": "2116:32:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" }, "typeName": { "baseType": { - "id": 179, + "id": 1474, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 178, - "name": "CToken", + "id": 1473, + "name": "CTokenRequest", "nameLocations": [ - "1794:6:0" + "2116:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1794:6:0" + "referencedDeclaration": 1466, + "src": "2116:13:2" }, - "referencedDeclaration": 72, - "src": "1794:6:0", + "referencedDeclaration": 1466, + "src": "2116:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, - "id": 180, + "id": 1475, "nodeType": "ArrayTypeName", - "src": "1794:8:0", + "src": "2116:15:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" } }, "visibility": "internal" }, { "constant": false, - "id": 183, + "id": 1478, "mutability": "mutable", "name": "account", - "nameLocation": "1841:7:0", + "nameLocation": "2170:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1825:23:0", + "scope": 1554, + "src": "2154:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3374,10 +3950,10 @@ "typeString": "address payable" }, "typeName": { - "id": 182, + "id": 1477, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1825:15:0", + "src": "2154:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3388,13 +3964,13 @@ }, { "constant": false, - "id": 185, + "id": 1480, "mutability": "mutable", "name": "spender", - "nameLocation": "1870:7:0", + "nameLocation": "2199:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1854:23:0", + "scope": 1554, + "src": "2183:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3402,10 +3978,10 @@ "typeString": "address payable" }, "typeName": { - "id": 184, + "id": 1479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1854:15:0", + "src": "2183:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3415,91 +3991,157 @@ "visibility": "internal" } ], - "src": "1759:122:0" + "src": "2064:146:2" }, "returnParameters": { - "id": 191, + "id": 1485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 190, + "id": 1484, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1900:23:0", + "scope": 1554, + "src": "2229:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" }, "typeName": { - "baseType": { - "id": 188, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 187, - "name": "CTokenMetadata", - "nameLocations": [ - "1900:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "1900:14:0" - }, - "referencedDeclaration": 174, - "src": "1900:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } + "id": 1483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1482, + "name": "QueryResponse", + "nameLocations": [ + "2229:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1460, + "src": "2229:13:2" }, - "id": 189, - "nodeType": "ArrayTypeName", - "src": "1900:16:0", + "referencedDeclaration": 1460, + "src": "2229:13:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" } }, "visibility": "internal" } ], - "src": "1899:25:0" + "src": "2228:22:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 307, + "id": 1623, "nodeType": "FunctionDefinition", - "src": "2248:729:0", + "src": "2757:804:2", "body": { - "id": 306, + "id": 1622, "nodeType": "Block", - "src": "2450:527:0", + "src": "2980:581:2", "statements": [ + { + "assignments": [ + 1575 + ], + "declarations": [ + { + "constant": false, + "id": 1575, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2993:6:2", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "2986:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1574, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1573, + "name": "CToken", + "nameLocations": [ + "2986:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "2986:6:2" + }, + "referencedDeclaration": 1347, + "src": "2986:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "id": 1578, + "initialValue": { + "expression": { + "id": 1576, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3002:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3016:6:2", + "memberName": "cToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1463, + "src": "3002:20:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2986:36:2" + }, { "assignments": [ null, - 265 + 1580 ], "declarations": [ null, { "constant": false, - "id": 265, + "id": 1580, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "2464:16:0", + "nameLocation": "3036:16:2", "nodeType": "VariableDeclaration", - "scope": 306, - "src": "2459:21:0", + "scope": 1622, + "src": "3031:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3507,10 +4149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 264, + "id": 1579, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2459:4:0", + "src": "3031:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3519,20 +4161,20 @@ "visibility": "internal" } ], - "id": 273, + "id": 1588, "initialValue": { "arguments": [ { "arguments": [ { - "id": 270, + "id": 1585, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2512:6:0", + "referencedDeclaration": 1575, + "src": "3084:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3540,30 +4182,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 269, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 268, + "id": 1583, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": {} } }, - "id": 271, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, @@ -3572,7 +4214,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2504:15:0", + "src": "3076:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3588,33 +4230,33 @@ } ], "expression": { - "id": 266, + "id": 1581, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "2484:11:0", + "referencedDeclaration": 1557, + "src": "3056:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 267, + "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2496:7:0", + "memberLocation": "3068:7:2", "memberName": "markets", "nodeType": "MemberAccess", - "referencedDeclaration": 81, - "src": "2484:19:0", + "referencedDeclaration": 1356, + "src": "3056:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", "typeString": "function (address) view external returns (bool,uint256)" } }, - "id": 272, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": false, @@ -3623,7 +4265,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2484:36:0", + "src": "3056:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", @@ -3631,7 +4273,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2456:64:0" + "src": "3028:64:2" }, { "expression": { @@ -3639,14 +4281,14 @@ { "arguments": [ { - "id": 277, + "id": 1592, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2581:6:0", + "referencedDeclaration": 1575, + "src": "3153:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3654,30 +4296,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 276, + "id": 1591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 275, + "id": 1590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": {} } }, - "id": 278, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, @@ -3686,7 +4328,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2573:15:0", + "src": "3145:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3696,24 +4338,24 @@ { "arguments": [ { - "id": 281, + "id": 1596, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2626:7:0", + "referencedDeclaration": 1565, + "src": "3198:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 282, + "id": 1597, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2635:7:0", + "referencedDeclaration": 1567, + "src": "3207:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3732,33 +4374,33 @@ } ], "expression": { - "id": 279, + "id": 1594, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2609:6:0", + "referencedDeclaration": 1575, + "src": "3181:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 280, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2616:9:0", + "memberLocation": "3188:9:2", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2609:16:0", + "referencedDeclaration": 1315, + "src": "3181:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 283, + "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, @@ -3767,7 +4409,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2609:34:0", + "src": "3181:34:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3777,12 +4419,12 @@ { "arguments": [ { - "id": 286, + "id": 1601, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2679:7:0", + "referencedDeclaration": 1565, + "src": "3251:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3797,33 +4439,33 @@ } ], "expression": { - "id": 284, + "id": 1599, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2662:6:0", + "referencedDeclaration": 1575, + "src": "3234:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 285, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2669:9:0", + "memberLocation": "3241:9:2", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "2662:16:0", + "referencedDeclaration": 1322, + "src": "3234:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 287, + "id": 1602, "isConstant": false, "isLValue": false, "isPure": false, @@ -3832,7 +4474,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2662:25:0", + "src": "3234:25:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3842,12 +4484,12 @@ { "arguments": [ { - "id": 290, + "id": 1605, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2743:7:0", + "referencedDeclaration": 1565, + "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3862,33 +4504,33 @@ } ], "expression": { - "id": 288, + "id": 1603, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2716:6:0", + "referencedDeclaration": 1575, + "src": "3288:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 289, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2723:19:0", + "memberLocation": "3295:19:2", "memberName": "balanceOfUnderlying", "nodeType": "MemberAccess", - "referencedDeclaration": 59, - "src": "2716:26:0", + "referencedDeclaration": 1329, + "src": "3288:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 291, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -3897,7 +4539,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2716:35:0", + "src": "3288:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3907,12 +4549,12 @@ { "arguments": [ { - "id": 294, + "id": 1609, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2804:7:0", + "referencedDeclaration": 1565, + "src": "3376:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3927,33 +4569,33 @@ } ], "expression": { - "id": 292, + "id": 1607, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2776:6:0", + "referencedDeclaration": 1575, + "src": "3348:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 293, + "id": 1608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2783:20:0", + "memberLocation": "3355:20:2", "memberName": "borrowBalanceCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 66, - "src": "2776:27:0", + "referencedDeclaration": 1336, + "src": "3348:27:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 295, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": false, @@ -3962,7 +4604,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2776:36:0", + "src": "3348:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3970,12 +4612,12 @@ } }, { - "id": 296, + "id": 1611, "name": "collateralFactor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "2840:16:0", + "referencedDeclaration": 1580, + "src": "3412:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3986,33 +4628,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 297, + "id": 1612, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2880:6:0", + "referencedDeclaration": 1575, + "src": "3452:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 298, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2887:19:0", + "memberLocation": "3459:19:2", "memberName": "exchangeRateCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 71, - "src": "2880:26:0", + "referencedDeclaration": 1341, + "src": "3452:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 299, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -4021,7 +4663,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2880:28:0", + "src": "3452:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4031,53 +4673,69 @@ { "arguments": [ { - "id": 302, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2956:6:0", + "expression": { + "id": 1617, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3515:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3529:17:2", + "memberName": "priceOracleSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 1465, + "src": "3515:31:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], "expression": { - "id": 300, + "id": 1615, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2925:11:0", + "referencedDeclaration": 1560, + "src": "3497:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, - "id": 301, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2937:18:0", - "memberName": "getUnderlyingPrice", + "memberLocation": "3509:5:2", + "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "2925:30:0", + "referencedDeclaration": 1430, + "src": "3497:17:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", - "typeString": "function (contract CToken) view external returns (uint256)" + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) view external returns (uint256)" } }, - "id": 303, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, @@ -4086,7 +4744,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2925:38:0", + "src": "3497:50:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4129,32 +4787,32 @@ "typeString": "uint256" } ], - "id": 274, + "id": 1589, "name": "CTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2540:14:0", + "referencedDeclaration": 1450, + "src": "3112:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" } }, - "id": 304, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2565:6:0", - "2598:9:0", - "2653:7:0", - "2697:17:0", - "2761:13:0", - "2822:16:0", - "2866:12:0", - "2918:5:0" + "3137:6:2", + "3170:9:2", + "3225:7:2", + "3269:17:2", + "3333:13:2", + "3394:16:2", + "3438:12:2", + "3490:5:2" ], "names": [ "cToken", @@ -4167,62 +4825,62 @@ "price" ], "nodeType": "FunctionCall", - "src": "2540:432:0", + "src": "3112:444:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "functionReturnParameters": 263, - "id": 305, + "functionReturnParameters": 1572, + "id": 1621, "nodeType": "Return", - "src": "2527:445:0" + "src": "3099:457:2" } ] }, - "functionSelector": "bc3b5005", + "functionSelector": "a72b45e0", "implemented": true, "kind": "function", "modifiers": [], "name": "cTokenMetadata", - "nameLocation": "2257:14:0", + "nameLocation": "2766:14:2", "parameters": { - "id": 259, + "id": 1568, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 248, + "id": 1557, "mutability": "mutable", "name": "comptroller", - "nameLocation": "2289:11:0", + "nameLocation": "2798:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2277:23:0", + "scope": 1623, + "src": "2786:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 247, + "id": 1556, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 246, + "id": 1555, "name": "Comptroller", "nameLocations": [ - "2277:11:0" + "2786:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "2277:11:0" + "referencedDeclaration": 1423, + "src": "2786:11:2" }, - "referencedDeclaration": 148, - "src": "2277:11:0", + "referencedDeclaration": 1423, + "src": "2786:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -4230,36 +4888,36 @@ }, { "constant": false, - "id": 251, + "id": 1560, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "2318:11:0", + "nameLocation": "2827:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2306:23:0", + "scope": 1623, + "src": "2815:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 250, + "id": 1559, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 249, + "id": 1558, "name": "PriceOracle", "nameLocations": [ - "2306:11:0" + "2815:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "2306:11:0" + "referencedDeclaration": 1431, + "src": "2815:11:2" }, - "referencedDeclaration": 157, - "src": "2306:11:0", + "referencedDeclaration": 1431, + "src": "2815:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, @@ -4267,50 +4925,50 @@ }, { "constant": false, - "id": 254, + "id": 1563, "mutability": "mutable", - "name": "cToken", - "nameLocation": "2342:6:0", + "name": "cTokenRequest", + "nameLocation": "2865:13:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2335:13:0", + "scope": 1623, + "src": "2844:34:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" }, "typeName": { - "id": 253, + "id": 1562, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 252, - "name": "CToken", + "id": 1561, + "name": "CTokenRequest", "nameLocations": [ - "2335:6:0" + "2844:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "2335:6:0" + "referencedDeclaration": 1466, + "src": "2844:13:2" }, - "referencedDeclaration": 72, - "src": "2335:6:0", + "referencedDeclaration": 1466, + "src": "2844:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, "visibility": "internal" }, { "constant": false, - "id": 256, + "id": 1565, "mutability": "mutable", "name": "account", - "nameLocation": "2370:7:0", + "nameLocation": "2900:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2354:23:0", + "scope": 1623, + "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4318,10 +4976,10 @@ "typeString": "address payable" }, "typeName": { - "id": 255, + "id": 1564, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2354:15:0", + "src": "2884:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4332,13 +4990,13 @@ }, { "constant": false, - "id": 258, + "id": 1567, "mutability": "mutable", "name": "spender", - "nameLocation": "2399:7:0", + "nameLocation": "2929:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2383:23:0", + "scope": 1623, + "src": "2913:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4346,10 +5004,10 @@ "typeString": "address payable" }, "typeName": { - "id": 257, + "id": 1566, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2383:15:0", + "src": "2913:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4359,74 +5017,91 @@ "visibility": "internal" } ], - "src": "2271:139:0" + "src": "2780:160:2" }, "returnParameters": { - "id": 263, + "id": 1572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 262, + "id": 1571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2427:21:0", + "scope": 1623, + "src": "2957:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" }, "typeName": { - "id": 261, + "id": 1570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 260, + "id": 1569, "name": "CTokenMetadata", "nameLocations": [ - "2427:14:0" + "2957:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2427:14:0" + "referencedDeclaration": 1450, + "src": "2957:14:2" }, - "referencedDeclaration": 174, - "src": "2427:14:0", + "referencedDeclaration": 1450, + "src": "2957:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, "visibility": "internal" } ], - "src": "2426:23:0" + "src": "2956:23:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "abstract": false, - "baseContracts": [], + "baseContracts": [ + { + "baseName": { + "id": 1432, + "name": "CometQuery", + "nameLocations": [ + "1611:10:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1611:10:2" + }, + "id": 1433, + "nodeType": "InheritanceSpecifier", + "src": "1611:10:2" + } + ], "canonicalName": "CompoundV2Query", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 308 + 1624, + 1268 ], "name": "CompoundV2Query", - "nameLocation": "1518:15:0", - "scope": 309, + "nameLocation": "1592:15:2", + "scope": 1625, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 0 + "id": 2 } \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json index 4745850..e257ccd 100644 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json @@ -3,12 +3,12 @@ { "inputs": [ { - "internalType": "contract CToken", - "name": "cToken", - "type": "address" + "internalType": "string", + "name": "price", + "type": "string" } ], - "name": "getUnderlyingPrice", + "name": "price", "outputs": [ { "internalType": "uint256", @@ -31,9 +31,9 @@ "linkReferences": {} }, "methodIdentifiers": { - "getUnderlyingPrice(address)": "fc57d4df" + "price(string)": "fe2c6198" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"}],\"name\":\"getUnderlyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"PriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe\",\"dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"price\",\"type\":\"string\"}],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"PriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -44,14 +44,14 @@ { "inputs": [ { - "internalType": "contract CToken", - "name": "cToken", - "type": "address" + "internalType": "string", + "name": "price", + "type": "string" } ], "stateMutability": "view", "type": "function", - "name": "getUnderlyingPrice", + "name": "price", "outputs": [ { "internalType": "uint256", @@ -84,14 +84,23 @@ "compilationTarget": { "Sleuth/CompoundV2Query.sol": "PriceOracle" }, - "libraries": {} + "libraries": {}, + "viaIR": true }, "sources": { + "Sleuth/CometQuery.sol": { + "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "urls": [ + "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", + "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + ], + "license": "UNLICENSED" + }, "Sleuth/CompoundV2Query.sol": { - "keccak256": "0x76ce0661fae27472547e84ab4f87b2ec0932cd3e449b69a1fa040a34bdfbc028", + "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", "urls": [ - "bzz-raw://fbe0832ff5e75d3a99e0e715a336e91662eab5249fd9fe8338c28a9bb97123fe", - "dweb:/ipfs/QmShL2ahuZxxs3uSZosVimefNebrVyAa5sVGjkK6MWKJS3" + "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", + "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" ], "license": "UNLICENSED" } @@ -100,28 +109,37 @@ }, "ast": { "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 309, + "id": 1625, "exportedSymbols": { "CToken": [ - 72 + 1347 + ], + "Comet": [ + 598 + ], + "CometQuery": [ + 1268 ], "CompoundV2Query": [ - 308 + 1624 ], "Comptroller": [ - 148 + 1423 + ], + "ERC20": [ + 630 ], "PriceOracle": [ - 157 + 1431 ] }, "nodeType": "SourceUnit", - "src": "39:2941:0", + "src": "39:3525:2", "nodes": [ { - "id": 1, + "id": 1270, "nodeType": "PragmaDirective", - "src": "39:24:0", + "src": "39:24:2", "literals": [ "solidity", "^", @@ -130,98 +148,110 @@ ] }, { - "id": 72, + "id": 1271, + "nodeType": "ImportDirective", + "src": "65:26:2", + "absolutePath": "Sleuth/CometQuery.sol", + "file": "./CometQuery.sol", + "nameLocation": "-1:-1:-1", + "scope": 1625, + "sourceUnit": 1269, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 1347, "nodeType": "ContractDefinition", - "src": "65:670:0", + "src": "93:723:2", "nodes": [ { - "id": 7, + "id": 1277, "nodeType": "FunctionDefinition", - "src": "86:54:0", + "src": "114:54:2", "functionSelector": "5fe3b567", "implemented": false, "kind": "function", "modifiers": [], "name": "comptroller", - "nameLocation": "95:11:0", + "nameLocation": "123:11:2", "parameters": { - "id": 2, + "id": 1272, "nodeType": "ParameterList", "parameters": [], - "src": "106:2:0" + "src": "134:2:2" }, "returnParameters": { - "id": 6, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5, + "id": 1275, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 7, - "src": "127:11:0", + "scope": 1277, + "src": "155:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 4, + "id": 1274, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3, + "id": 1273, "name": "Comptroller", "nameLocations": [ - "127:11:0" + "155:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "127:11:0" + "referencedDeclaration": 1423, + "src": "155:11:2" }, - "referencedDeclaration": 148, - "src": "127:11:0", + "referencedDeclaration": 1423, + "src": "155:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, "visibility": "internal" } ], - "src": "126:13:0" + "src": "154:13:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 16, + "id": 1286, "nodeType": "FunctionDefinition", - "src": "144:68:0", + "src": "172:68:2", "functionSelector": "a9059cbb", "implemented": false, "kind": "function", "modifiers": [], "name": "transfer", - "nameLocation": "153:8:0", + "nameLocation": "181:8:2", "parameters": { - "id": 12, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 9, + "id": 1279, "mutability": "mutable", "name": "dst", - "nameLocation": "170:3:0", + "nameLocation": "198:3:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "162:11:0", + "scope": 1286, + "src": "190:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -229,10 +259,10 @@ "typeString": "address" }, "typeName": { - "id": 8, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", - "src": "162:7:0", + "src": "190:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -243,13 +273,13 @@ }, { "constant": false, - "id": 11, + "id": 1281, "mutability": "mutable", "name": "amount", - "nameLocation": "180:6:0", + "nameLocation": "208:6:2", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "175:11:0", + "scope": 1286, + "src": "203:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -257,10 +287,10 @@ "typeString": "uint256" }, "typeName": { - "id": 10, + "id": 1280, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "175:4:0", + "src": "203:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -269,21 +299,21 @@ "visibility": "internal" } ], - "src": "161:26:0" + "src": "189:26:2" }, "returnParameters": { - "id": 15, + "id": 1285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 14, + "id": 1284, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 16, - "src": "206:4:0", + "scope": 1286, + "src": "234:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -291,10 +321,10 @@ "typeString": "bool" }, "typeName": { - "id": 13, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "206:4:0", + "src": "234:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -303,36 +333,36 @@ "visibility": "internal" } ], - "src": "205:6:0" + "src": "233:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 27, + "id": 1297, "nodeType": "FunctionDefinition", - "src": "216:85:0", + "src": "244:85:2", "functionSelector": "23b872dd", "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", - "nameLocation": "225:12:0", + "nameLocation": "253:12:2", "parameters": { - "id": 23, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 1288, "mutability": "mutable", "name": "src", - "nameLocation": "246:3:0", + "nameLocation": "274:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "238:11:0", + "scope": 1297, + "src": "266:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -340,10 +370,10 @@ "typeString": "address" }, "typeName": { - "id": 17, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:0", + "src": "266:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -354,13 +384,13 @@ }, { "constant": false, - "id": 20, + "id": 1290, "mutability": "mutable", "name": "dst", - "nameLocation": "259:3:0", + "nameLocation": "287:3:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "251:11:0", + "scope": 1297, + "src": "279:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -368,10 +398,10 @@ "typeString": "address" }, "typeName": { - "id": 19, + "id": 1289, "name": "address", "nodeType": "ElementaryTypeName", - "src": "251:7:0", + "src": "279:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -382,13 +412,13 @@ }, { "constant": false, - "id": 22, + "id": 1292, "mutability": "mutable", "name": "amount", - "nameLocation": "269:6:0", + "nameLocation": "297:6:2", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "264:11:0", + "scope": 1297, + "src": "292:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -396,10 +426,10 @@ "typeString": "uint256" }, "typeName": { - "id": 21, + "id": 1291, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "264:4:0", + "src": "292:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -408,21 +438,21 @@ "visibility": "internal" } ], - "src": "237:39:0" + "src": "265:39:2" }, "returnParameters": { - "id": 26, + "id": 1296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 1295, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "295:4:0", + "scope": 1297, + "src": "323:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -430,10 +460,10 @@ "typeString": "bool" }, "typeName": { - "id": 24, + "id": 1294, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "295:4:0", + "src": "323:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -442,36 +472,36 @@ "visibility": "internal" } ], - "src": "294:6:0" + "src": "322:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 36, + "id": 1306, "nodeType": "FunctionDefinition", - "src": "305:71:0", + "src": "333:71:2", "functionSelector": "095ea7b3", "implemented": false, "kind": "function", "modifiers": [], "name": "approve", - "nameLocation": "314:7:0", + "nameLocation": "342:7:2", "parameters": { - "id": 32, + "id": 1302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 1299, "mutability": "mutable", "name": "spender", - "nameLocation": "330:7:0", + "nameLocation": "358:7:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "322:15:0", + "scope": 1306, + "src": "350:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -479,10 +509,10 @@ "typeString": "address" }, "typeName": { - "id": 28, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", - "src": "322:7:0", + "src": "350:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -493,13 +523,13 @@ }, { "constant": false, - "id": 31, + "id": 1301, "mutability": "mutable", "name": "amount", - "nameLocation": "344:6:0", + "nameLocation": "372:6:2", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "339:11:0", + "scope": 1306, + "src": "367:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -507,10 +537,10 @@ "typeString": "uint256" }, "typeName": { - "id": 30, + "id": 1300, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "339:4:0", + "src": "367:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -519,21 +549,21 @@ "visibility": "internal" } ], - "src": "321:30:0" + "src": "349:30:2" }, "returnParameters": { - "id": 35, + "id": 1305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 34, + "id": 1304, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 36, - "src": "370:4:0", + "scope": 1306, + "src": "398:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -541,10 +571,10 @@ "typeString": "bool" }, "typeName": { - "id": 33, + "id": 1303, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "370:4:0", + "src": "398:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -553,36 +583,36 @@ "visibility": "internal" } ], - "src": "369:6:0" + "src": "397:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 45, + "id": 1315, "nodeType": "FunctionDefinition", - "src": "380:80:0", + "src": "408:80:2", "functionSelector": "dd62ed3e", "implemented": false, "kind": "function", "modifiers": [], "name": "allowance", - "nameLocation": "389:9:0", + "nameLocation": "417:9:2", "parameters": { - "id": 41, + "id": 1311, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 38, + "id": 1308, "mutability": "mutable", "name": "owner", - "nameLocation": "407:5:0", + "nameLocation": "435:5:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "399:13:0", + "scope": 1315, + "src": "427:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -590,10 +620,10 @@ "typeString": "address" }, "typeName": { - "id": 37, + "id": 1307, "name": "address", "nodeType": "ElementaryTypeName", - "src": "399:7:0", + "src": "427:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -604,13 +634,13 @@ }, { "constant": false, - "id": 40, + "id": 1310, "mutability": "mutable", "name": "spender", - "nameLocation": "422:7:0", + "nameLocation": "450:7:2", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "414:15:0", + "scope": 1315, + "src": "442:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -618,10 +648,10 @@ "typeString": "address" }, "typeName": { - "id": 39, + "id": 1309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "414:7:0", + "src": "442:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -631,21 +661,21 @@ "visibility": "internal" } ], - "src": "398:32:0" + "src": "426:32:2" }, "returnParameters": { - "id": 44, + "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 1313, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "454:4:0", + "scope": 1315, + "src": "482:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -653,10 +683,10 @@ "typeString": "uint256" }, "typeName": { - "id": 42, + "id": 1312, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "454:4:0", + "src": "482:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -665,36 +695,36 @@ "visibility": "internal" } ], - "src": "453:6:0" + "src": "481:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 52, + "id": 1322, "nodeType": "FunctionDefinition", - "src": "464:63:0", + "src": "492:63:2", "functionSelector": "70a08231", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", - "nameLocation": "473:9:0", + "nameLocation": "501:9:2", "parameters": { - "id": 48, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 47, + "id": 1317, "mutability": "mutable", "name": "owner", - "nameLocation": "491:5:0", + "nameLocation": "519:5:2", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "483:13:0", + "scope": 1322, + "src": "511:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -702,10 +732,10 @@ "typeString": "address" }, "typeName": { - "id": 46, + "id": 1316, "name": "address", "nodeType": "ElementaryTypeName", - "src": "483:7:0", + "src": "511:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -715,21 +745,21 @@ "visibility": "internal" } ], - "src": "482:15:0" + "src": "510:15:2" }, "returnParameters": { - "id": 51, + "id": 1321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 50, + "id": 1320, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "521:4:0", + "scope": 1322, + "src": "549:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -737,10 +767,10 @@ "typeString": "uint256" }, "typeName": { - "id": 49, + "id": 1319, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "521:4:0", + "src": "549:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -749,36 +779,36 @@ "visibility": "internal" } ], - "src": "520:6:0" + "src": "548:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 59, + "id": 1329, "nodeType": "FunctionDefinition", - "src": "531:68:0", + "src": "559:68:2", "functionSelector": "3af9e669", "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOfUnderlying", - "nameLocation": "540:19:0", + "nameLocation": "568:19:2", "parameters": { - "id": 55, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 54, + "id": 1324, "mutability": "mutable", "name": "owner", - "nameLocation": "568:5:0", + "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "560:13:0", + "scope": 1329, + "src": "588:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -786,10 +816,10 @@ "typeString": "address" }, "typeName": { - "id": 53, + "id": 1323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "560:7:0", + "src": "588:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -799,21 +829,21 @@ "visibility": "internal" } ], - "src": "559:15:0" + "src": "587:15:2" }, "returnParameters": { - "id": 58, + "id": 1328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 57, + "id": 1327, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 59, - "src": "593:4:0", + "scope": 1329, + "src": "621:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -821,10 +851,10 @@ "typeString": "uint256" }, "typeName": { - "id": 56, + "id": 1326, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "593:4:0", + "src": "621:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -833,36 +863,36 @@ "visibility": "internal" } ], - "src": "592:6:0" + "src": "620:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 66, + "id": 1336, "nodeType": "FunctionDefinition", - "src": "603:71:0", + "src": "631:71:2", "functionSelector": "17bfdfbc", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowBalanceCurrent", - "nameLocation": "612:20:0", + "nameLocation": "640:20:2", "parameters": { - "id": 62, + "id": 1332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 61, + "id": 1331, "mutability": "mutable", "name": "account", - "nameLocation": "641:7:0", + "nameLocation": "669:7:2", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "633:15:0", + "scope": 1336, + "src": "661:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -870,10 +900,10 @@ "typeString": "address" }, "typeName": { - "id": 60, + "id": 1330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "633:7:0", + "src": "661:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -883,21 +913,21 @@ "visibility": "internal" } ], - "src": "632:17:0" + "src": "660:17:2" }, "returnParameters": { - "id": 65, + "id": 1335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 64, + "id": 1334, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 66, - "src": "668:4:0", + "scope": 1336, + "src": "696:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +935,10 @@ "typeString": "uint256" }, "typeName": { - "id": 63, + "id": 1333, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "668:4:0", + "src": "696:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -917,42 +947,42 @@ "visibility": "internal" } ], - "src": "667:6:0" + "src": "695:6:2" }, - "scope": 72, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 71, + "id": 1341, "nodeType": "FunctionDefinition", - "src": "678:55:0", + "src": "706:55:2", "functionSelector": "bd6d894d", "implemented": false, "kind": "function", "modifiers": [], "name": "exchangeRateCurrent", - "nameLocation": "687:19:0", + "nameLocation": "715:19:2", "parameters": { - "id": 67, + "id": 1337, "nodeType": "ParameterList", "parameters": [], - "src": "706:2:0" + "src": "734:2:2" }, "returnParameters": { - "id": 70, + "id": 1340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 69, + "id": 1339, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 71, - "src": "727:4:0", + "scope": 1341, + "src": "755:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +990,10 @@ "typeString": "uint256" }, "typeName": { - "id": 68, + "id": 1338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "727:4:0", + "src": "755:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -972,9 +1002,65 @@ "visibility": "internal" } ], - "src": "726:6:0" + "src": "754:6:2" }, - "scope": 72, + "scope": 1347, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 1346, + "nodeType": "FunctionDefinition", + "src": "765:49:2", + "functionSelector": "6f307dc3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "underlying", + "nameLocation": "774:10:2", + "parameters": { + "id": 1342, + "nodeType": "ParameterList", + "parameters": [], + "src": "784:2:2" + }, + "returnParameters": { + "id": 1345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1344, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "805:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "804:9:2" + }, + "scope": 1347, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -987,41 +1073,41 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 72 + 1347 ], "name": "CToken", - "nameLocation": "75:6:0", - "scope": 309, + "nameLocation": "103:6:2", + "scope": 1625, "usedErrors": [] }, { - "id": 148, + "id": 1423, "nodeType": "ContractDefinition", - "src": "737:668:0", + "src": "818:668:2", "nodes": [ { - "id": 81, + "id": 1356, "nodeType": "FunctionDefinition", - "src": "763:61:0", + "src": "844:61:2", "functionSelector": "8e8f294b", "implemented": false, "kind": "function", "modifiers": [], "name": "markets", - "nameLocation": "772:7:0", + "nameLocation": "853:7:2", "parameters": { - "id": 75, + "id": 1350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 74, + "id": 1349, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "780:7:0", + "scope": 1356, + "src": "861:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1029,10 +1115,10 @@ "typeString": "address" }, "typeName": { - "id": 73, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", - "src": "780:7:0", + "src": "861:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1042,21 +1128,21 @@ "visibility": "internal" } ], - "src": "779:9:0" + "src": "860:9:2" }, "returnParameters": { - "id": 80, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 77, + "id": 1352, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "812:4:0", + "scope": 1356, + "src": "893:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1064,10 +1150,10 @@ "typeString": "bool" }, "typeName": { - "id": 76, + "id": 1351, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "812:4:0", + "src": "893:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1077,13 +1163,13 @@ }, { "constant": false, - "id": 79, + "id": 1354, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 81, - "src": "818:4:0", + "scope": 1356, + "src": "899:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1091,10 +1177,10 @@ "typeString": "uint256" }, "typeName": { - "id": 78, + "id": 1353, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:0", + "src": "899:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1103,101 +1189,101 @@ "visibility": "internal" } ], - "src": "811:12:0" + "src": "892:12:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 87, + "id": 1362, "nodeType": "FunctionDefinition", - "src": "828:54:0", + "src": "909:54:2", "functionSelector": "7dc0d1d0", "implemented": false, "kind": "function", "modifiers": [], "name": "oracle", - "nameLocation": "837:6:0", + "nameLocation": "918:6:2", "parameters": { - "id": 82, + "id": 1357, "nodeType": "ParameterList", "parameters": [], - "src": "843:2:0" + "src": "924:2:2" }, "returnParameters": { - "id": 86, + "id": 1361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 85, + "id": 1360, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 87, - "src": "869:11:0", + "scope": 1362, + "src": "950:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 84, + "id": 1359, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 83, + "id": 1358, "name": "PriceOracle", "nameLocations": [ - "869:11:0" + "950:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "869:11:0" + "referencedDeclaration": 1431, + "src": "950:11:2" }, - "referencedDeclaration": 157, - "src": "869:11:0", + "referencedDeclaration": 1431, + "src": "950:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "src": "868:13:0" + "src": "949:13:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 98, + "id": 1373, "nodeType": "FunctionDefinition", - "src": "886:79:0", + "src": "967:79:2", "functionSelector": "5ec88c79", "implemented": false, "kind": "function", "modifiers": [], "name": "getAccountLiquidity", - "nameLocation": "895:19:0", + "nameLocation": "976:19:2", "parameters": { - "id": 90, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 89, + "id": 1364, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "915:7:0", + "scope": 1373, + "src": "996:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1205,10 +1291,10 @@ "typeString": "address" }, "typeName": { - "id": 88, + "id": 1363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "915:7:0", + "src": "996:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1218,21 +1304,21 @@ "visibility": "internal" } ], - "src": "914:9:0" + "src": "995:9:2" }, "returnParameters": { - "id": 97, + "id": 1372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 92, + "id": 1367, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "947:4:0", + "scope": 1373, + "src": "1028:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1240,10 +1326,10 @@ "typeString": "uint256" }, "typeName": { - "id": 91, + "id": 1366, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "947:4:0", + "src": "1028:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1253,13 +1339,13 @@ }, { "constant": false, - "id": 94, + "id": 1369, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "953:4:0", + "scope": 1373, + "src": "1034:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1267,10 +1353,10 @@ "typeString": "uint256" }, "typeName": { - "id": 93, + "id": 1368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "953:4:0", + "src": "1034:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1280,13 +1366,13 @@ }, { "constant": false, - "id": 96, + "id": 1371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "959:4:0", + "scope": 1373, + "src": "1040:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1294,10 +1380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 95, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "959:4:0", + "src": "1040:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1306,36 +1392,36 @@ "visibility": "internal" } ], - "src": "946:18:0" + "src": "1027:18:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 107, + "id": 1382, "nodeType": "FunctionDefinition", - "src": "969:70:0", + "src": "1050:70:2", "functionSelector": "abfceffc", "implemented": false, "kind": "function", "modifiers": [], "name": "getAssetsIn", - "nameLocation": "978:11:0", + "nameLocation": "1059:11:2", "parameters": { - "id": 101, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 1375, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "990:7:0", + "scope": 1382, + "src": "1071:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1343,10 +1429,10 @@ "typeString": "address" }, "typeName": { - "id": 99, + "id": 1374, "name": "address", "nodeType": "ElementaryTypeName", - "src": "990:7:0", + "src": "1071:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1356,89 +1442,89 @@ "visibility": "internal" } ], - "src": "989:9:0" + "src": "1070:9:2" }, "returnParameters": { - "id": 106, + "id": 1381, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 105, + "id": 1380, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 107, - "src": "1022:15:0", + "scope": 1382, + "src": "1103:15:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", "typeString": "contract CToken[]" }, "typeName": { "baseType": { - "id": 103, + "id": 1378, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 102, + "id": 1377, "name": "CToken", "nameLocations": [ - "1022:6:0" + "1103:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1022:6:0" + "referencedDeclaration": 1347, + "src": "1103:6:2" }, - "referencedDeclaration": 72, - "src": "1022:6:0", + "referencedDeclaration": 1347, + "src": "1103:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 104, + "id": 1379, "nodeType": "ArrayTypeName", - "src": "1022:8:0", + "src": "1103:8:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", "typeString": "contract CToken[]" } }, "visibility": "internal" } ], - "src": "1021:17:0" + "src": "1102:17:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 112, + "id": 1387, "nodeType": "FunctionDefinition", - "src": "1043:37:0", + "src": "1124:37:2", "functionSelector": "e9af0292", "implemented": false, "kind": "function", "modifiers": [], "name": "claimComp", - "nameLocation": "1052:9:0", + "nameLocation": "1133:9:2", "parameters": { - "id": 110, + "id": 1385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 109, + "id": 1384, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 112, - "src": "1062:7:0", + "scope": 1387, + "src": "1143:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1446,10 +1532,10 @@ "typeString": "address" }, "typeName": { - "id": 108, + "id": 1383, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1062:7:0", + "src": "1143:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1459,42 +1545,42 @@ "visibility": "internal" } ], - "src": "1061:9:0" + "src": "1142:9:2" }, "returnParameters": { - "id": 111, + "id": 1386, "nodeType": "ParameterList", "parameters": [], - "src": "1079:0:0" + "src": "1160:0:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 119, + "id": 1394, "nodeType": "FunctionDefinition", - "src": "1084:59:0", + "src": "1165:59:2", "functionSelector": "cc7ebdc4", "implemented": false, "kind": "function", "modifiers": [], "name": "compAccrued", - "nameLocation": "1093:11:0", + "nameLocation": "1174:11:2", "parameters": { - "id": 115, + "id": 1390, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 114, + "id": 1389, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1105:7:0", + "scope": 1394, + "src": "1186:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1502,10 +1588,10 @@ "typeString": "address" }, "typeName": { - "id": 113, + "id": 1388, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1105:7:0", + "src": "1186:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1515,21 +1601,21 @@ "visibility": "internal" } ], - "src": "1104:9:0" + "src": "1185:9:2" }, "returnParameters": { - "id": 118, + "id": 1393, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 117, + "id": 1392, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1137:4:0", + "scope": 1394, + "src": "1218:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1537,10 +1623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 116, + "id": 1391, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:0", + "src": "1218:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1549,36 +1635,36 @@ "visibility": "internal" } ], - "src": "1136:6:0" + "src": "1217:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 126, + "id": 1401, "nodeType": "FunctionDefinition", - "src": "1147:58:0", + "src": "1228:58:2", "functionSelector": "1d7b33d7", "implemented": false, "kind": "function", "modifiers": [], "name": "compSpeeds", - "nameLocation": "1156:10:0", + "nameLocation": "1237:10:2", "parameters": { - "id": 122, + "id": 1397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 121, + "id": 1396, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1167:7:0", + "scope": 1401, + "src": "1248:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1586,10 +1672,10 @@ "typeString": "address" }, "typeName": { - "id": 120, + "id": 1395, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1167:7:0", + "src": "1248:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1599,21 +1685,21 @@ "visibility": "internal" } ], - "src": "1166:9:0" + "src": "1247:9:2" }, "returnParameters": { - "id": 125, + "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 1399, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 126, - "src": "1199:4:0", + "scope": 1401, + "src": "1280:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1621,10 +1707,10 @@ "typeString": "uint256" }, "typeName": { - "id": 123, + "id": 1398, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1199:4:0", + "src": "1280:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1633,36 +1719,36 @@ "visibility": "internal" } ], - "src": "1198:6:0" + "src": "1279:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 133, + "id": 1408, "nodeType": "FunctionDefinition", - "src": "1209:64:0", + "src": "1290:64:2", "functionSelector": "6aa875b5", "implemented": false, "kind": "function", "modifiers": [], "name": "compSupplySpeeds", - "nameLocation": "1218:16:0", + "nameLocation": "1299:16:2", "parameters": { - "id": 129, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 128, + "id": 1403, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1235:7:0", + "scope": 1408, + "src": "1316:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1670,10 +1756,10 @@ "typeString": "address" }, "typeName": { - "id": 127, + "id": 1402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1235:7:0", + "src": "1316:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1683,21 +1769,21 @@ "visibility": "internal" } ], - "src": "1234:9:0" + "src": "1315:9:2" }, "returnParameters": { - "id": 132, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 131, + "id": 1406, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 133, - "src": "1267:4:0", + "scope": 1408, + "src": "1348:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1705,10 +1791,10 @@ "typeString": "uint256" }, "typeName": { - "id": 130, + "id": 1405, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1267:4:0", + "src": "1348:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1717,36 +1803,36 @@ "visibility": "internal" } ], - "src": "1266:6:0" + "src": "1347:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 140, + "id": 1415, "nodeType": "FunctionDefinition", - "src": "1277:64:0", + "src": "1358:64:2", "functionSelector": "f4a433c0", "implemented": false, "kind": "function", "modifiers": [], "name": "compBorrowSpeeds", - "nameLocation": "1286:16:0", + "nameLocation": "1367:16:2", "parameters": { - "id": 136, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 135, + "id": 1410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1303:7:0", + "scope": 1415, + "src": "1384:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1754,10 +1840,10 @@ "typeString": "address" }, "typeName": { - "id": 134, + "id": 1409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1303:7:0", + "src": "1384:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1767,21 +1853,21 @@ "visibility": "internal" } ], - "src": "1302:9:0" + "src": "1383:9:2" }, "returnParameters": { - "id": 139, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 138, + "id": 1413, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 140, - "src": "1335:4:0", + "scope": 1415, + "src": "1416:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1789,10 +1875,10 @@ "typeString": "uint256" }, "typeName": { - "id": 137, + "id": 1412, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1335:4:0", + "src": "1416:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1801,36 +1887,36 @@ "visibility": "internal" } ], - "src": "1334:6:0" + "src": "1415:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 147, + "id": 1422, "nodeType": "FunctionDefinition", - "src": "1345:58:0", + "src": "1426:58:2", "functionSelector": "4a584432", "implemented": false, "kind": "function", "modifiers": [], "name": "borrowCaps", - "nameLocation": "1354:10:0", + "nameLocation": "1435:10:2", "parameters": { - "id": 143, + "id": 1418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 142, + "id": 1417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1365:7:0", + "scope": 1422, + "src": "1446:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1838,10 +1924,10 @@ "typeString": "address" }, "typeName": { - "id": 141, + "id": 1416, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1365:7:0", + "src": "1446:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1851,21 +1937,21 @@ "visibility": "internal" } ], - "src": "1364:9:0" + "src": "1445:9:2" }, "returnParameters": { - "id": 146, + "id": 1421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 1420, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 147, - "src": "1397:4:0", + "scope": 1422, + "src": "1478:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1873,10 +1959,10 @@ "typeString": "uint256" }, "typeName": { - "id": 144, + "id": 1419, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1397:4:0", + "src": "1478:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1885,9 +1971,9 @@ "visibility": "internal" } ], - "src": "1396:6:0" + "src": "1477:6:2" }, - "scope": 148, + "scope": 1423, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -1900,85 +1986,75 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 148 + 1423 ], "name": "Comptroller", - "nameLocation": "747:11:0", - "scope": 309, + "nameLocation": "828:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 157, + "id": 1431, "nodeType": "ContractDefinition", - "src": "1407:100:0", + "src": "1488:93:2", "nodes": [ { - "id": 156, + "id": 1430, "nodeType": "FunctionDefinition", - "src": "1433:72:0", - "functionSelector": "fc57d4df", + "src": "1514:65:2", + "functionSelector": "fe2c6198", "implemented": false, "kind": "function", "modifiers": [], - "name": "getUnderlyingPrice", - "nameLocation": "1442:18:0", + "name": "price", + "nameLocation": "1523:5:2", "parameters": { - "id": 152, + "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, + "id": 1425, "mutability": "mutable", - "name": "cToken", - "nameLocation": "1468:6:0", + "name": "price", + "nameLocation": "1543:5:2", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1461:13:0", + "scope": 1430, + "src": "1529:19:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 150, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 149, - "name": "CToken", - "nameLocations": [ - "1461:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1461:6:0" - }, - "referencedDeclaration": 72, - "src": "1461:6:0", + "id": 1424, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1529:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" } ], - "src": "1460:15:0" + "src": "1528:21:2" }, "returnParameters": { - "id": 155, + "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 154, + "id": 1428, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1499:4:0", + "scope": 1430, + "src": "1573:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1986,10 +2062,10 @@ "typeString": "uint256" }, "typeName": { - "id": 153, + "id": 1427, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1499:4:0", + "src": "1573:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1998,9 +2074,9 @@ "visibility": "internal" } ], - "src": "1498:6:0" + "src": "1572:6:2" }, - "scope": 157, + "scope": 1431, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -2013,33 +2089,33 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 157 + 1431 ], "name": "PriceOracle", - "nameLocation": "1417:11:0", - "scope": 309, + "nameLocation": "1498:11:2", + "scope": 1625, "usedErrors": [] }, { - "id": 308, + "id": 1624, "nodeType": "ContractDefinition", - "src": "1509:1470:0", + "src": "1583:1980:2", "nodes": [ { - "id": 174, + "id": 1450, "nodeType": "StructDefinition", - "src": "1538:203:0", + "src": "1626:203:2", "canonicalName": "CompoundV2Query.CTokenMetadata", "members": [ { "constant": false, - "id": 159, + "id": 1435, "mutability": "mutable", "name": "cToken", - "nameLocation": "1574:6:0", + "nameLocation": "1662:6:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1566:14:0", + "scope": 1450, + "src": "1654:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2047,10 +2123,10 @@ "typeString": "address" }, "typeName": { - "id": 158, + "id": 1434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1566:7:0", + "src": "1654:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2061,13 +2137,13 @@ }, { "constant": false, - "id": 161, + "id": 1437, "mutability": "mutable", "name": "allowance", - "nameLocation": "1591:9:0", + "nameLocation": "1679:9:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1586:14:0", + "scope": 1450, + "src": "1674:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2075,10 +2151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 160, + "id": 1436, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1586:4:0", + "src": "1674:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2088,13 +2164,13 @@ }, { "constant": false, - "id": 163, + "id": 1439, "mutability": "mutable", "name": "balance", - "nameLocation": "1611:7:0", + "nameLocation": "1699:7:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1606:12:0", + "scope": 1450, + "src": "1694:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2102,10 +2178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 1438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1606:4:0", + "src": "1694:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2115,13 +2191,13 @@ }, { "constant": false, - "id": 165, + "id": 1441, "mutability": "mutable", "name": "balanceUnderlying", - "nameLocation": "1629:17:0", + "nameLocation": "1717:17:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1624:22:0", + "scope": 1450, + "src": "1712:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2129,10 +2205,10 @@ "typeString": "uint256" }, "typeName": { - "id": 164, + "id": 1440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1624:4:0", + "src": "1712:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2142,13 +2218,13 @@ }, { "constant": false, - "id": 167, + "id": 1443, "mutability": "mutable", "name": "borrowBalance", - "nameLocation": "1657:13:0", + "nameLocation": "1745:13:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1652:18:0", + "scope": 1450, + "src": "1740:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2156,10 +2232,10 @@ "typeString": "uint256" }, "typeName": { - "id": 166, + "id": 1442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1652:4:0", + "src": "1740:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2169,13 +2245,13 @@ }, { "constant": false, - "id": 169, + "id": 1445, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "1681:16:0", + "nameLocation": "1769:16:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1676:21:0", + "scope": 1450, + "src": "1764:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2183,10 +2259,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 1444, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1676:4:0", + "src": "1764:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2196,13 +2272,13 @@ }, { "constant": false, - "id": 171, + "id": 1447, "mutability": "mutable", "name": "exchangeRate", - "nameLocation": "1708:12:0", + "nameLocation": "1796:12:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1703:17:0", + "scope": 1450, + "src": "1791:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2210,10 +2286,10 @@ "typeString": "uint256" }, "typeName": { - "id": 170, + "id": 1446, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1703:4:0", + "src": "1791:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2223,13 +2299,13 @@ }, { "constant": false, - "id": 173, + "id": 1449, "mutability": "mutable", "name": "price", - "nameLocation": "1731:5:0", + "nameLocation": "1819:5:2", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "1726:10:0", + "scope": 1450, + "src": "1814:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2237,10 +2313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 172, + "id": 1448, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1726:4:0", + "src": "1814:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2250,95 +2326,293 @@ } ], "name": "CTokenMetadata", - "nameLocation": "1545:14:0", - "scope": 308, + "nameLocation": "1633:14:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1460, + "nodeType": "StructDefinition", + "src": "1833:124:2", + "canonicalName": "CompoundV2Query.QueryResponse", + "members": [ + { + "constant": false, + "id": 1452, + "mutability": "mutable", + "name": "migratorEnabled", + "nameLocation": "1865:15:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1860:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1860:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1456, + "mutability": "mutable", + "name": "tokens", + "nameLocation": "1903:6:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1886:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + }, + "typeName": { + "baseType": { + "id": 1454, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1453, + "name": "CTokenMetadata", + "nameLocations": [ + "1886:14:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1450, + "src": "1886:14:2" + }, + "referencedDeclaration": 1450, + "src": "1886:14:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata" + } + }, + "id": 1455, + "nodeType": "ArrayTypeName", + "src": "1886:16:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "cometState", + "nameLocation": "1942:10:2", + "nodeType": "VariableDeclaration", + "scope": 1460, + "src": "1915:37:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + }, + "typeName": { + "id": 1458, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1457, + "name": "CometStateWithAccountState", + "nameLocations": [ + "1915:26:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 789, + "src": "1915:26:2" + }, + "referencedDeclaration": 789, + "src": "1915:26:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState" + } + }, + "visibility": "internal" + } + ], + "name": "QueryResponse", + "nameLocation": "1840:13:2", + "scope": 1624, "visibility": "public" }, { - "id": 245, + "id": 1466, + "nodeType": "StructDefinition", + "src": "1961:75:2", + "canonicalName": "CompoundV2Query.CTokenRequest", + "members": [ + { + "constant": false, + "id": 1463, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "1995:6:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "1988:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1461, + "name": "CToken", + "nameLocations": [ + "1988:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "1988:6:2" + }, + "referencedDeclaration": 1347, + "src": "1988:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "priceOracleSymbol", + "nameLocation": "2014:17:2", + "nodeType": "VariableDeclaration", + "scope": 1466, + "src": "2007:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1464, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2007:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "CTokenRequest", + "nameLocation": "1968:13:2", + "scope": 1624, + "visibility": "public" + }, + { + "id": 1554, "nodeType": "FunctionDefinition", - "src": "1745:499:0", + "src": "2040:713:2", "body": { - "id": 244, + "id": 1553, "nodeType": "Block", - "src": "1925:319:0", + "src": "2251:502:2", "statements": [ { "assignments": [ - 194 + 1488 ], "declarations": [ { "constant": false, - "id": 194, + "id": 1488, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "1943:11:0", + "nameLocation": "2269:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1931:23:0", + "scope": 1553, + "src": "2257:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 193, + "id": 1487, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 192, + "id": 1486, "name": "PriceOracle", "nameLocations": [ - "1931:11:0" + "2257:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "1931:11:0" + "referencedDeclaration": 1431, + "src": "2257:11:2" }, - "referencedDeclaration": 157, - "src": "1931:11:0", + "referencedDeclaration": 1431, + "src": "2257:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "id": 198, + "id": 1492, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 195, + "id": 1489, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "1957:11:0", + "referencedDeclaration": 1469, + "src": "2283:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 196, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1969:6:0", + "memberLocation": "2295:6:2", "memberName": "oracle", "nodeType": "MemberAccess", - "referencedDeclaration": 87, - "src": "1957:18:0", + "referencedDeclaration": 1362, + "src": "2283:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$157_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", "typeString": "function () view external returns (contract PriceOracle)" } }, - "id": 197, + "id": 1491, "isConstant": false, "isLValue": false, "isPure": false, @@ -2347,30 +2621,30 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1957:20:0", + "src": "2283:20:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, "nodeType": "VariableDeclarationStatement", - "src": "1931:46:0" + "src": "2257:46:2" }, { "assignments": [ - 200 + 1494 ], "declarations": [ { "constant": false, - "id": 200, + "id": 1494, "mutability": "mutable", "name": "cTokenCount", - "nameLocation": "1988:11:0", + "nameLocation": "2314:11:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "1983:16:0", + "scope": 1553, + "src": "2309:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2378,10 +2652,10 @@ "typeString": "uint256" }, "typeName": { - "id": 199, + "id": 1493, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1983:4:0", + "src": "2309:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2390,99 +2664,99 @@ "visibility": "internal" } ], - "id": 203, + "id": 1497, "initialValue": { "expression": { - "id": 201, + "id": 1495, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2002:7:0", + "referencedDeclaration": 1476, + "src": "2328:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 202, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2010:6:0", + "memberLocation": "2336:6:2", "memberName": "length", "nodeType": "MemberAccess", - "src": "2002:14:0", + "src": "2328:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1983:33:0" + "src": "2309:33:2" }, { "assignments": [ - 208 + 1502 ], "declarations": [ { "constant": false, - "id": 208, + "id": 1502, "mutability": "mutable", - "name": "res", - "nameLocation": "2046:3:0", + "name": "tokens", + "nameLocation": "2372:6:2", "nodeType": "VariableDeclaration", - "scope": 244, - "src": "2022:27:0", + "scope": 1553, + "src": "2348:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 206, + "id": 1500, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 205, + "id": 1499, "name": "CTokenMetadata", "nameLocations": [ - "2022:14:0" + "2348:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2022:14:0" + "referencedDeclaration": 1450, + "src": "2348:14:2" }, - "referencedDeclaration": 174, - "src": "2022:14:0", + "referencedDeclaration": 1450, + "src": "2348:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 207, + "id": 1501, "nodeType": "ArrayTypeName", - "src": "2022:16:0", + "src": "2348:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, "visibility": "internal" } ], - "id": 215, + "id": 1509, "initialValue": { "arguments": [ { - "id": 213, + "id": 1507, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2073:11:0", + "referencedDeclaration": 1494, + "src": "2402:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2496,48 +2770,48 @@ "typeString": "uint256" } ], - "id": 212, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "2052:20:0", + "src": "2381:20:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 210, + "id": 1504, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 209, + "id": 1503, "name": "CTokenMetadata", "nameLocations": [ - "2056:14:0" + "2385:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2056:14:0" + "referencedDeclaration": 1450, + "src": "2385:14:2" }, - "referencedDeclaration": 174, - "src": "2056:14:0", + "referencedDeclaration": 1450, + "src": "2385:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 211, + "id": 1505, "nodeType": "ArrayTypeName", - "src": "2056:16:0", + "src": "2385:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } } }, - "id": 214, + "id": 1508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2546,50 +2820,50 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2052:33:0", + "src": "2381:33:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2022:63:0" + "src": "2348:66:2" }, { "body": { - "id": 240, + "id": 1534, "nodeType": "Block", - "src": "2130:94:0", + "src": "2459:97:2", "statements": [ { "expression": { - "id": 238, + "id": 1532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 226, - "name": "res", + "id": 1520, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2138:3:0", + "referencedDeclaration": 1502, + "src": "2467:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, - "id": 228, + "id": 1522, "indexExpression": { - "id": 227, + "id": 1521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2142:1:0", + "referencedDeclaration": 1511, + "src": "2474:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2600,9 +2874,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2138:6:0", + "src": "2467:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, @@ -2611,50 +2885,50 @@ "rightHandSide": { "arguments": [ { - "id": 230, + "id": 1524, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2162:11:0", + "referencedDeclaration": 1469, + "src": "2494:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, { - "id": 231, + "id": 1525, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "2175:11:0", + "referencedDeclaration": 1488, + "src": "2507:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, { "baseExpression": { - "id": 232, + "id": 1526, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2188:7:0", + "referencedDeclaration": 1476, + "src": "2520:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[] calldata" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 234, + "id": 1528, "indexExpression": { - "id": 233, + "id": 1527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2196:1:0", + "referencedDeclaration": 1511, + "src": "2528:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2665,31 +2939,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2188:10:0", + "src": "2520:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" } }, { - "id": 235, + "id": 1529, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2200:7:0", + "referencedDeclaration": 1478, + "src": "2532:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 236, + "id": 1530, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2209:7:0", + "referencedDeclaration": 1480, + "src": "2541:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2699,16 +2973,16 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest calldata" }, { "typeIdentifier": "t_address_payable", @@ -2719,18 +2993,18 @@ "typeString": "address payable" } ], - "id": 229, + "id": 1523, "name": "cTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 307, - "src": "2147:14:0", + "referencedDeclaration": 1623, + "src": "2479:14:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$148_$_t_contract$_PriceOracle_$157_$_t_contract$_CToken_$72_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$174_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,contract CToken,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", + "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" } }, - "id": 237, + "id": 1531, "isConstant": false, "isLValue": false, "isPure": false, @@ -2739,22 +3013,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2147:70:0", + "src": "2479:70:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "src": "2138:79:0", + "src": "2467:82:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "id": 239, + "id": 1533, "nodeType": "ExpressionStatement", - "src": "2138:79:0" + "src": "2467:82:2" } ] }, @@ -2763,18 +3037,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 222, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 220, + "id": 1514, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2108:1:0", + "referencedDeclaration": 1511, + "src": "2437:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2783,38 +3057,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 221, + "id": 1515, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "2112:11:0", + "referencedDeclaration": 1494, + "src": "2441:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2108:15:0", + "src": "2437:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 241, + "id": 1535, "initializationExpression": { "assignments": [ - 217 + 1511 ], "declarations": [ { "constant": false, - "id": 217, + "id": 1511, "mutability": "mutable", "name": "i", - "nameLocation": "2101:1:0", + "nameLocation": "2430:1:2", "nodeType": "VariableDeclaration", - "scope": 241, - "src": "2096:6:0", + "scope": 1535, + "src": "2425:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2822,10 +3096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 216, + "id": 1510, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2096:4:0", + "src": "2425:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2834,17 +3108,17 @@ "visibility": "internal" } ], - "id": 219, + "id": 1513, "initialValue": { "hexValue": "30", - "id": 218, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2105:1:0", + "src": "2434:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2852,11 +3126,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2096:10:0" + "src": "2425:10:2" }, "loopExpression": { "expression": { - "id": 224, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": false, @@ -2864,14 +3138,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2125:3:0", + "src": "2454:3:2", "subExpression": { - "id": 223, + "id": 1517, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "2125:1:0", + "referencedDeclaration": 1511, + "src": "2454:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2882,75 +3156,340 @@ "typeString": "uint256" } }, - "id": 225, + "id": 1519, "nodeType": "ExpressionStatement", - "src": "2125:3:0" + "src": "2454:3:2" }, "nodeType": "ForStatement", - "src": "2091:133:0" + "src": "2420:136:2" }, { "expression": { - "id": 242, - "name": "res", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 208, - "src": "2236:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + "arguments": [ + { + "arguments": [ + { + "id": 1539, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2632:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 1540, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1480, + "src": "2641:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 1537, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2616:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2622:9:2", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 597, + "src": "2616:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2616:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1542, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "2667:6:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + } + }, + { + "arguments": [ + { + "id": 1544, + "name": "comet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1472, + "src": "2712:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + { + "id": 1545, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2719:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2736:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2728:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2728:8:2", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1543, + "name": "queryWithAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2695:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" + } + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2695:44:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" + }, + { + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeString": "struct CometQuery.CometStateWithAccountState memory" + } + ], + "id": 1536, + "name": "QueryResponse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "2575:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", + "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" + } + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "2599:15:2", + "2659:6:2", + "2683:10:2" + ], + "names": [ + "migratorEnabled", + "tokens", + "cometState" + ], + "nodeType": "FunctionCall", + "src": "2575:173:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse memory" } }, - "functionReturnParameters": 191, - "id": 243, + "functionReturnParameters": 1485, + "id": 1552, "nodeType": "Return", - "src": "2229:10:0" + "src": "2562:186:2" } ] }, - "functionSelector": "0637ff4b", + "functionSelector": "61d11a6e", "implemented": true, "kind": "function", "modifiers": [], - "name": "query", - "nameLocation": "1754:5:0", + "name": "getMigratorData", + "nameLocation": "2049:15:2", "parameters": { - "id": 186, + "id": 1481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 177, + "id": 1469, "mutability": "mutable", "name": "comptroller", - "nameLocation": "1777:11:0", + "nameLocation": "2082:11:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1765:23:0", + "scope": 1554, + "src": "2070:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 176, + "id": 1468, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 175, + "id": 1467, "name": "Comptroller", "nameLocations": [ - "1765:11:0" + "2070:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "1765:11:0" + "referencedDeclaration": 1423, + "src": "2070:11:2" }, - "referencedDeclaration": 148, - "src": "1765:11:0", + "referencedDeclaration": 1423, + "src": "2070:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -2958,59 +3497,96 @@ }, { "constant": false, - "id": 181, + "id": 1472, + "mutability": "mutable", + "name": "comet", + "nameLocation": "2105:5:2", + "nodeType": "VariableDeclaration", + "scope": 1554, + "src": "2099:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + }, + "typeName": { + "id": 1471, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1470, + "name": "Comet", + "nameLocations": [ + "2099:5:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 598, + "src": "2099:5:2" + }, + "referencedDeclaration": 598, + "src": "2099:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Comet_$598", + "typeString": "contract Comet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1476, "mutability": "mutable", "name": "cTokens", - "nameLocation": "1812:7:0", + "nameLocation": "2141:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1794:25:0", + "scope": 1554, + "src": "2116:32:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_calldata_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" }, "typeName": { "baseType": { - "id": 179, + "id": 1474, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 178, - "name": "CToken", + "id": 1473, + "name": "CTokenRequest", "nameLocations": [ - "1794:6:0" + "2116:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "1794:6:0" + "referencedDeclaration": 1466, + "src": "2116:13:2" }, - "referencedDeclaration": 72, - "src": "1794:6:0", + "referencedDeclaration": 1466, + "src": "2116:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, - "id": 180, + "id": 1475, "nodeType": "ArrayTypeName", - "src": "1794:8:0", + "src": "2116:15:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$72_$dyn_storage_ptr", - "typeString": "contract CToken[]" + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest[]" } }, "visibility": "internal" }, { "constant": false, - "id": 183, + "id": 1478, "mutability": "mutable", "name": "account", - "nameLocation": "1841:7:0", + "nameLocation": "2170:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1825:23:0", + "scope": 1554, + "src": "2154:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3018,10 +3594,10 @@ "typeString": "address payable" }, "typeName": { - "id": 182, + "id": 1477, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1825:15:0", + "src": "2154:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3032,13 +3608,13 @@ }, { "constant": false, - "id": 185, + "id": 1480, "mutability": "mutable", "name": "spender", - "nameLocation": "1870:7:0", + "nameLocation": "2199:7:2", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1854:23:0", + "scope": 1554, + "src": "2183:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3046,10 +3622,10 @@ "typeString": "address payable" }, "typeName": { - "id": 184, + "id": 1479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1854:15:0", + "src": "2183:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3059,91 +3635,157 @@ "visibility": "internal" } ], - "src": "1759:122:0" + "src": "2064:146:2" }, "returnParameters": { - "id": 191, + "id": 1485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 190, + "id": 1484, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 245, - "src": "1900:23:0", + "scope": 1554, + "src": "2229:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" }, "typeName": { - "baseType": { - "id": 188, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 187, - "name": "CTokenMetadata", - "nameLocations": [ - "1900:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "1900:14:0" - }, - "referencedDeclaration": 174, - "src": "1900:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } + "id": 1483, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1482, + "name": "QueryResponse", + "nameLocations": [ + "2229:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1460, + "src": "2229:13:2" }, - "id": 189, - "nodeType": "ArrayTypeName", - "src": "1900:16:0", + "referencedDeclaration": 1460, + "src": "2229:13:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$174_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" + "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", + "typeString": "struct CompoundV2Query.QueryResponse" } }, "visibility": "internal" } ], - "src": "1899:25:0" + "src": "2228:22:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 307, + "id": 1623, "nodeType": "FunctionDefinition", - "src": "2248:729:0", + "src": "2757:804:2", "body": { - "id": 306, + "id": 1622, "nodeType": "Block", - "src": "2450:527:0", + "src": "2980:581:2", "statements": [ + { + "assignments": [ + 1575 + ], + "declarations": [ + { + "constant": false, + "id": 1575, + "mutability": "mutable", + "name": "cToken", + "nameLocation": "2993:6:2", + "nodeType": "VariableDeclaration", + "scope": 1622, + "src": "2986:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + }, + "typeName": { + "id": 1574, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1573, + "name": "CToken", + "nameLocations": [ + "2986:6:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1347, + "src": "2986:6:2" + }, + "referencedDeclaration": 1347, + "src": "2986:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "visibility": "internal" + } + ], + "id": 1578, + "initialValue": { + "expression": { + "id": 1576, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3002:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3016:6:2", + "memberName": "cToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1463, + "src": "3002:20:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CToken_$1347", + "typeString": "contract CToken" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2986:36:2" + }, { "assignments": [ null, - 265 + 1580 ], "declarations": [ null, { "constant": false, - "id": 265, + "id": 1580, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "2464:16:0", + "nameLocation": "3036:16:2", "nodeType": "VariableDeclaration", - "scope": 306, - "src": "2459:21:0", + "scope": 1622, + "src": "3031:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3151,10 +3793,10 @@ "typeString": "uint256" }, "typeName": { - "id": 264, + "id": 1579, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2459:4:0", + "src": "3031:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3163,20 +3805,20 @@ "visibility": "internal" } ], - "id": 273, + "id": 1588, "initialValue": { "arguments": [ { "arguments": [ { - "id": 270, + "id": 1585, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2512:6:0", + "referencedDeclaration": 1575, + "src": "3084:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3184,30 +3826,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 269, + "id": 1584, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 268, + "id": 1583, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2504:7:0", + "src": "3076:7:2", "typeDescriptions": {} } }, - "id": 271, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, @@ -3216,7 +3858,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2504:15:0", + "src": "3076:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3232,33 +3874,33 @@ } ], "expression": { - "id": 266, + "id": 1581, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "2484:11:0", + "referencedDeclaration": 1557, + "src": "3056:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, - "id": 267, + "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2496:7:0", + "memberLocation": "3068:7:2", "memberName": "markets", "nodeType": "MemberAccess", - "referencedDeclaration": 81, - "src": "2484:19:0", + "referencedDeclaration": 1356, + "src": "3056:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", "typeString": "function (address) view external returns (bool,uint256)" } }, - "id": 272, + "id": 1587, "isConstant": false, "isLValue": false, "isPure": false, @@ -3267,7 +3909,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2484:36:0", + "src": "3056:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", @@ -3275,7 +3917,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2456:64:0" + "src": "3028:64:2" }, { "expression": { @@ -3283,14 +3925,14 @@ { "arguments": [ { - "id": 277, + "id": 1592, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2581:6:0", + "referencedDeclaration": 1575, + "src": "3153:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } } @@ -3298,30 +3940,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } ], - "id": 276, + "id": 1591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 275, + "id": 1590, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2573:7:0", + "src": "3145:7:2", "typeDescriptions": {} } }, - "id": 278, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, @@ -3330,7 +3972,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2573:15:0", + "src": "3145:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -3340,24 +3982,24 @@ { "arguments": [ { - "id": 281, + "id": 1596, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2626:7:0", + "referencedDeclaration": 1565, + "src": "3198:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 282, + "id": 1597, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2635:7:0", + "referencedDeclaration": 1567, + "src": "3207:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3376,33 +4018,33 @@ } ], "expression": { - "id": 279, + "id": 1594, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2609:6:0", + "referencedDeclaration": 1575, + "src": "3181:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 280, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2616:9:0", + "memberLocation": "3188:9:2", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2609:16:0", + "referencedDeclaration": 1315, + "src": "3181:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 283, + "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, @@ -3411,7 +4053,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2609:34:0", + "src": "3181:34:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3421,12 +4063,12 @@ { "arguments": [ { - "id": 286, + "id": 1601, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2679:7:0", + "referencedDeclaration": 1565, + "src": "3251:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3441,33 +4083,33 @@ } ], "expression": { - "id": 284, + "id": 1599, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2662:6:0", + "referencedDeclaration": 1575, + "src": "3234:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 285, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2669:9:0", + "memberLocation": "3241:9:2", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "2662:16:0", + "referencedDeclaration": 1322, + "src": "3234:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 287, + "id": 1602, "isConstant": false, "isLValue": false, "isPure": false, @@ -3476,7 +4118,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2662:25:0", + "src": "3234:25:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3486,12 +4128,12 @@ { "arguments": [ { - "id": 290, + "id": 1605, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2743:7:0", + "referencedDeclaration": 1565, + "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3506,33 +4148,33 @@ } ], "expression": { - "id": 288, + "id": 1603, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2716:6:0", + "referencedDeclaration": 1575, + "src": "3288:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 289, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2723:19:0", + "memberLocation": "3295:19:2", "memberName": "balanceOfUnderlying", "nodeType": "MemberAccess", - "referencedDeclaration": 59, - "src": "2716:26:0", + "referencedDeclaration": 1329, + "src": "3288:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 291, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -3541,7 +4183,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2716:35:0", + "src": "3288:35:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3551,12 +4193,12 @@ { "arguments": [ { - "id": 294, + "id": 1609, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 256, - "src": "2804:7:0", + "referencedDeclaration": 1565, + "src": "3376:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3571,33 +4213,33 @@ } ], "expression": { - "id": 292, + "id": 1607, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2776:6:0", + "referencedDeclaration": 1575, + "src": "3348:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 293, + "id": 1608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2783:20:0", + "memberLocation": "3355:20:2", "memberName": "borrowBalanceCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 66, - "src": "2776:27:0", + "referencedDeclaration": 1336, + "src": "3348:27:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 295, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": false, @@ -3606,7 +4248,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2776:36:0", + "src": "3348:36:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3614,12 +4256,12 @@ } }, { - "id": 296, + "id": 1611, "name": "collateralFactor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 265, - "src": "2840:16:0", + "referencedDeclaration": 1580, + "src": "3412:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3630,33 +4272,33 @@ "expression": { "argumentTypes": [], "expression": { - "id": 297, + "id": 1612, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2880:6:0", + "referencedDeclaration": 1575, + "src": "3452:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", + "typeIdentifier": "t_contract$_CToken_$1347", "typeString": "contract CToken" } }, - "id": 298, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2887:19:0", + "memberLocation": "3459:19:2", "memberName": "exchangeRateCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 71, - "src": "2880:26:0", + "referencedDeclaration": 1341, + "src": "3452:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 299, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -3665,7 +4307,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2880:28:0", + "src": "3452:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3675,53 +4317,69 @@ { "arguments": [ { - "id": 302, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "2956:6:0", + "expression": { + "id": 1617, + "name": "cTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1563, + "src": "3515:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest memory" + } + }, + "id": 1618, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3529:17:2", + "memberName": "priceOracleSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 1465, + "src": "3515:31:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], "expression": { - "id": 300, + "id": 1615, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "2925:11:0", + "referencedDeclaration": 1560, + "src": "3497:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, - "id": 301, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2937:18:0", - "memberName": "getUnderlyingPrice", + "memberLocation": "3509:5:2", + "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 156, - "src": "2925:30:0", + "referencedDeclaration": 1430, + "src": "3497:17:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_CToken_$72_$returns$_t_uint256_$", - "typeString": "function (contract CToken) view external returns (uint256)" + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory) view external returns (uint256)" } }, - "id": 303, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, @@ -3730,7 +4388,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2925:38:0", + "src": "3497:50:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3773,32 +4431,32 @@ "typeString": "uint256" } ], - "id": 274, + "id": 1589, "name": "CTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2540:14:0", + "referencedDeclaration": 1450, + "src": "3112:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$174_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" } }, - "id": 304, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2565:6:0", - "2598:9:0", - "2653:7:0", - "2697:17:0", - "2761:13:0", - "2822:16:0", - "2866:12:0", - "2918:5:0" + "3137:6:2", + "3170:9:2", + "3225:7:2", + "3269:17:2", + "3333:13:2", + "3394:16:2", + "3438:12:2", + "3490:5:2" ], "names": [ "cToken", @@ -3811,62 +4469,62 @@ "price" ], "nodeType": "FunctionCall", - "src": "2540:432:0", + "src": "3112:444:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "functionReturnParameters": 263, - "id": 305, + "functionReturnParameters": 1572, + "id": 1621, "nodeType": "Return", - "src": "2527:445:0" + "src": "3099:457:2" } ] }, - "functionSelector": "bc3b5005", + "functionSelector": "a72b45e0", "implemented": true, "kind": "function", "modifiers": [], "name": "cTokenMetadata", - "nameLocation": "2257:14:0", + "nameLocation": "2766:14:2", "parameters": { - "id": 259, + "id": 1568, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 248, + "id": 1557, "mutability": "mutable", "name": "comptroller", - "nameLocation": "2289:11:0", + "nameLocation": "2798:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2277:23:0", + "scope": 1623, + "src": "2786:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" }, "typeName": { - "id": 247, + "id": 1556, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 246, + "id": 1555, "name": "Comptroller", "nameLocations": [ - "2277:11:0" + "2786:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 148, - "src": "2277:11:0" + "referencedDeclaration": 1423, + "src": "2786:11:2" }, - "referencedDeclaration": 148, - "src": "2277:11:0", + "referencedDeclaration": 1423, + "src": "2786:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$148", + "typeIdentifier": "t_contract$_Comptroller_$1423", "typeString": "contract Comptroller" } }, @@ -3874,36 +4532,36 @@ }, { "constant": false, - "id": 251, + "id": 1560, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "2318:11:0", + "nameLocation": "2827:11:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2306:23:0", + "scope": 1623, + "src": "2815:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" }, "typeName": { - "id": 250, + "id": 1559, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 249, + "id": 1558, "name": "PriceOracle", "nameLocations": [ - "2306:11:0" + "2815:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 157, - "src": "2306:11:0" + "referencedDeclaration": 1431, + "src": "2815:11:2" }, - "referencedDeclaration": 157, - "src": "2306:11:0", + "referencedDeclaration": 1431, + "src": "2815:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$157", + "typeIdentifier": "t_contract$_PriceOracle_$1431", "typeString": "contract PriceOracle" } }, @@ -3911,50 +4569,50 @@ }, { "constant": false, - "id": 254, + "id": 1563, "mutability": "mutable", - "name": "cToken", - "nameLocation": "2342:6:0", + "name": "cTokenRequest", + "nameLocation": "2865:13:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2335:13:0", + "scope": 1623, + "src": "2844:34:2", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" }, "typeName": { - "id": 253, + "id": 1562, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 252, - "name": "CToken", + "id": 1561, + "name": "CTokenRequest", "nameLocations": [ - "2335:6:0" + "2844:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 72, - "src": "2335:6:0" + "referencedDeclaration": 1466, + "src": "2844:13:2" }, - "referencedDeclaration": 72, - "src": "2335:6:0", + "referencedDeclaration": 1466, + "src": "2844:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$72", - "typeString": "contract CToken" + "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeString": "struct CompoundV2Query.CTokenRequest" } }, "visibility": "internal" }, { "constant": false, - "id": 256, + "id": 1565, "mutability": "mutable", "name": "account", - "nameLocation": "2370:7:0", + "nameLocation": "2900:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2354:23:0", + "scope": 1623, + "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3962,10 +4620,10 @@ "typeString": "address payable" }, "typeName": { - "id": 255, + "id": 1564, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2354:15:0", + "src": "2884:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -3976,13 +4634,13 @@ }, { "constant": false, - "id": 258, + "id": 1567, "mutability": "mutable", "name": "spender", - "nameLocation": "2399:7:0", + "nameLocation": "2929:7:2", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2383:23:0", + "scope": 1623, + "src": "2913:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3990,10 +4648,10 @@ "typeString": "address payable" }, "typeName": { - "id": 257, + "id": 1566, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2383:15:0", + "src": "2913:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4003,74 +4661,91 @@ "visibility": "internal" } ], - "src": "2271:139:0" + "src": "2780:160:2" }, "returnParameters": { - "id": 263, + "id": 1572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 262, + "id": 1571, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 307, - "src": "2427:21:0", + "scope": 1623, + "src": "2957:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" }, "typeName": { - "id": 261, + "id": 1570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 260, + "id": 1569, "name": "CTokenMetadata", "nameLocations": [ - "2427:14:0" + "2957:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 174, - "src": "2427:14:0" + "referencedDeclaration": 1450, + "src": "2957:14:2" }, - "referencedDeclaration": 174, - "src": "2427:14:0", + "referencedDeclaration": 1450, + "src": "2957:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$174_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, "visibility": "internal" } ], - "src": "2426:23:0" + "src": "2956:23:2" }, - "scope": 308, + "scope": 1624, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "abstract": false, - "baseContracts": [], + "baseContracts": [ + { + "baseName": { + "id": 1432, + "name": "CometQuery", + "nameLocations": [ + "1611:10:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1268, + "src": "1611:10:2" + }, + "id": 1433, + "nodeType": "InheritanceSpecifier", + "src": "1611:10:2" + } + ], "canonicalName": "CompoundV2Query", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 308 + 1624, + 1268 ], "name": "CompoundV2Query", - "nameLocation": "1518:15:0", - "scope": 309, + "nameLocation": "1592:15:2", + "scope": 1625, "usedErrors": [] } ], "license": "UNLICENSED" }, - "id": 0 + "id": 2 } \ No newline at end of file diff --git a/web/helpers/utils.ts b/web/helpers/utils.ts index 3a54e65..cffc514 100644 --- a/web/helpers/utils.ts +++ b/web/helpers/utils.ts @@ -1,4 +1,8 @@ -import { BaseAssetWithAccountState, ProtocolAndAccountState } from '@compound-finance/comet-extension/dist/CometState'; +import { + BaseAssetWithAccountState, + ProtocolAndAccountState, + TokenWithAccountState +} from '@compound-finance/comet-extension/dist/CometState'; import { Contract } from '@ethersproject/contracts'; import { TransactionResponse } from '@ethersproject/providers'; import { Protocol } from '@uniswap/router-sdk'; @@ -6,7 +10,14 @@ import { CurrencyAmount, Percent, Token, TradeType } from '@uniswap/sdk-core'; import { AlphaRouter, SwapType, V3Route } from '@uniswap/smart-order-router'; import { encodeRouteToPath } from '@uniswap/v3-sdk'; -import { MigrateBorrowTokenState, MigrateCollateralTokenState, MigrationSource, StateType, SwapInfo } from '../types'; +import { + CometQueryResponse, + MigrateBorrowTokenState, + MigrateCollateralTokenState, + MigrationSource, + StateType, + SwapInfo +} from '../types'; import { BASE_FACTOR, @@ -108,6 +119,82 @@ export function migrationSourceToDisplayString(migrationSource: MigrationSource) } } +const getCapacity = ( + capacity: 'borrow' | 'liquidation', + baseAssetDecimals: number, + baseAssetPrice: bigint, + collateralAssets: TokenWithAccountState[] +): bigint => { + const sum = collateralAssets.reduce( + (acc, { balance, collateralFactor, decimals, liquidateCollateralFactor, price }) => { + const dollarValue = (balance * price) / BigInt(10 ** decimals); + const factor = capacity === 'borrow' ? collateralFactor : liquidateCollateralFactor; + const borrowValue = (dollarValue * factor) / BASE_FACTOR; + return acc + borrowValue; + }, + BigInt(0) + ); + + return (sum * BigInt(10 ** baseAssetDecimals)) / baseAssetPrice; +}; + +const getCollateralValue = (collateralAssets: TokenWithAccountState[]): bigint => { + return collateralAssets.reduce( + (acc, { balance, decimals, price }) => acc + (balance * price) / BigInt(10 ** decimals), + BigInt(0) + ); +}; + +export function cometQueryResponseToCometData(response: CometQueryResponse): ProtocolAndAccountState { + const collateralAssets: TokenWithAccountState[] = response.collateralAssets.map(asset => { + return { + address: asset.collateralAsset, + allowance: asset.allowance.toBigInt(), + balance: asset.balance.toBigInt(), + collateralFactor: asset.collateralFactor.toBigInt(), + decimals: asset.decimals.toNumber(), + liquidateCollateralFactor: asset.liquidateCollateralFactor.toBigInt(), + liquidationFactor: asset.liquidationFactor.toBigInt(), + name: asset.name, + price: asset.price.toBigInt(), + priceFeed: asset.priceFeed, + symbol: asset.symbol, + supplyCap: asset.supplyCap.toBigInt(), + totalSupply: asset.totalSupply.toBigInt(), + walletBalance: asset.walletBalance.toBigInt() + }; + }); + + const baseAssetDecimals = response.baseAsset.decimals.toNumber(); + const baseAssetPrice = response.baseAsset.price.toBigInt(); + + const borrowCapacity = getCapacity('borrow', baseAssetDecimals, baseAssetPrice, collateralAssets); + return { + baseAsset: { + address: response.baseAsset.baseAsset, + allowance: response.baseAsset.allowance.toBigInt(), + balance: response.baseAsset.balance.toBigInt(), + balanceOfComet: response.baseAsset.balanceOfComet.toBigInt(), + borrowCapacity: borrowCapacity, + decimals: baseAssetDecimals, + name: response.baseAsset.name, + symbol: response.baseAsset.symbol, + minBorrow: response.baseAsset.minBorrow.toBigInt(), + priceFeed: response.baseAsset.priceFeed, + price: baseAssetPrice, + walletBalance: response.baseAsset.walletBalance.toBigInt() + }, + borrowAPR: response.borrowAPR.toBigInt(), + borrowRewardsAPR: 0n, + bulkerAllowance: response.bulkerAllowance.toBigInt(), + collateralAssets, + earnAPR: response.earnAPR.toBigInt(), + earnRewardsAPR: 0n, + collateralValue: getCollateralValue(collateralAssets), + liquidationCapacity: getCapacity('liquidation', baseAssetDecimals, baseAssetPrice, collateralAssets) + }; +} + type DataToFormatArgs = { borrowTokens: MigrateBorrowTokenState[]; collateralTokens: MigrateCollateralTokenState[]; @@ -459,7 +546,7 @@ export function validateForm({ } const collateral: Collateral[] = []; - for (let { address, balance, balanceUnderlying, underlying, transfer, exchangeRate } of collateralTokens) { + for (let { address, balanceUnderlying, underlying, transfer, exchangeRate } of collateralTokens) { const collateralAsset = cometData.collateralAssets.find(asset => asset.symbol === underlying.symbol); const isBaseAsset = underlying.symbol === cometData.baseAsset.symbol; const collateralKey = migrationSource === MigrationSource.AaveV2 ? ATokenKey : CTokenKey; diff --git a/web/types.ts b/web/types.ts index d47fd09..0d74f77 100644 --- a/web/types.ts +++ b/web/types.ts @@ -1,5 +1,6 @@ import { RPC } from '@compound-finance/comet-extension'; import { TransactionReceipt, JsonRpcProvider } from '@ethersproject/providers'; +import { BigNumber } from 'ethers'; import mainnetV3Roots from '../node_modules/comet/deployments/mainnet/usdc/roots.json'; import mainnetV2Roots from '../node_modules/compound-config/networks/mainnet.json'; @@ -185,3 +186,47 @@ export type SwapInfo = { export type MigrationSourceInfoAave = [MigrationSource.AaveV2, AaveNetworkConfig]; export type MigrationSourceInfoCompound = [MigrationSource.CompoundV2, CompoundNetworkConfig]; export type MigrationSourceInfo = MigrationSourceInfoAave | MigrationSourceInfoCompound; + +export type CometCollateralAsset = { + allowance: BigNumber; + balance: BigNumber; + collateralAsset: string; + collateralFactor: BigNumber; + decimals: BigNumber; + liquidateCollateralFactor: BigNumber; + liquidationFactor: BigNumber; + name: string; + price: BigNumber; + priceFeed: string; + supplyCap: BigNumber; + symbol: string; + totalSupply: BigNumber; + walletBalance: BigNumber; +}; +export type CometQueryResponse = { + baseAsset: { + allowance: BigNumber; + baseAsset: string; + balance: BigNumber; + balanceOfComet: BigNumber; + symbol: string; + decimals: BigNumber; + minBorrow: BigNumber; + name: string; + price: BigNumber; + priceFeed: string; + walletBalance: BigNumber; + }; + baseMinForRewards: BigNumber; + baseTrackingBorrowSpeed: BigNumber; + baseTrackingSupplySpeed: BigNumber; + borrowAPR: BigNumber; + bulkerAllowance: BigNumber; + collateralAssets: CometCollateralAsset[]; + earnAPR: BigNumber; + totalBorrow: BigNumber; + totalBorrowPrincipal: BigNumber; + totalSupply: BigNumber; + totalSupplyPrincipal: BigNumber; + trackingIndexScale: BigNumber; +}; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 223db53..b36672d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -356,10 +356,10 @@ "@ethersproject/abi" "^5.7.0" "@ethersproject/providers" "^5.7.1" -"@compound-finance/sleuth@^1.0.1-alpha5": - version "1.0.1-alpha5" - resolved "https://registry.yarnpkg.com/@compound-finance/sleuth/-/sleuth-1.0.1-alpha5.tgz#3987066c0e0fdf9fdfce5449e5c6de59c20258ae" - integrity sha512-0oZymUHs3sYZemxa130Ip3rl23O6BIid9b9UBLyvtt3FSQGCIKckFmGRiQOOXxUQFZQYbC43EY7aKPbMygWCHg== +"@compound-finance/sleuth@^1.0.1-alpha6": + version "1.0.1-alpha6" + resolved "https://registry.yarnpkg.com/@compound-finance/sleuth/-/sleuth-1.0.1-alpha6.tgz#3be7ee20f69ff1ea0c05e45debd9f57219476398" + integrity sha512-yHpsOKZcSaPwlWqWceNwTmvYkezAsD+uWlEgdViNweMECfIA8RtYYGE+gzr/wNZztqfRMP7Tdgreb8L7apdehw== dependencies: "@ethersproject/contracts" "^5.7.0" "@ethersproject/providers" "^5.7.2" From d5799a45bb02870073cd48f15b0d38fb6d6a928d Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Tue, 3 Jan 2023 21:02:25 -0500 Subject: [PATCH 05/11] Delete unnecessary compiled outputs --- .../Sleuth/out/AaveV2Query.sol/AToken.json | 4047 ----- .../out/AaveV2Query.sol/AavePriceOracle.json | 3998 ---- .../Sleuth/out/AaveV2Query.sol/DebtToken.json | 3998 ---- .../out/AaveV2Query.sol/LendingPool.json | 4012 ----- .../LendingPoolAddressesProvider.json | 3986 ---- .../Sleuth/out/CometQuery.sol/Comet.json | 15039 ---------------- .../Sleuth/out/CometQuery.sol/ERC20.json | 13477 -------------- .../out/CompoundV2Query.sol/CToken.json | 5116 ------ .../Sleuth/out/CompoundV2Query.sol/Comet.json | 4675 ----- .../out/CompoundV2Query.sol/Comptroller.json | 5107 ------ .../out/CompoundV2Query.sol/PriceOracle.json | 4751 ----- 11 files changed, 68206 deletions(-) delete mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json delete mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json delete mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json delete mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json delete mode 100644 web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json delete mode 100644 web/helpers/Sleuth/out/CometQuery.sol/Comet.json delete mode 100644 web/helpers/Sleuth/out/CometQuery.sol/ERC20.json delete mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json delete mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json delete mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json delete mode 100644 web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json deleted file mode 100644 index 4fe4027..0000000 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/AToken.json +++ /dev/null @@ -1,4047 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "balanceOf(address)": "70a08231" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/AaveV2Query.sol": "AToken" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/AaveV2Query.sol": { - "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", - "urls": [ - "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", - "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" - ], - "license": "UNLICENSED" - }, - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/AaveV2Query.sol", - "id": 288, - "exportedSymbols": { - "AToken": [ - 19 - ], - "AavePriceOracle": [ - 54 - ], - "AaveV2Query": [ - 287 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "DebtToken": [ - 27 - ], - "ERC20": [ - 630 - ], - "LendingPool": [ - 46 - ], - "LendingPoolAddressesProvider": [ - 34 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3454:0", - "nodes": [ - { - "id": 1, - "nodeType": "PragmaDirective", - "src": "39:24:0", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 2, - "nodeType": "ImportDirective", - "src": "65:26:0", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 288, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 19, - "nodeType": "ContractDefinition", - "src": "93:170:0", - "nodes": [ - { - "id": 11, - "nodeType": "FunctionDefinition", - "src": "114:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "123:9:0", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "owner", - "nameLocation": "141:5:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "133:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6, - "mutability": "mutable", - "name": "spender", - "nameLocation": "156:7:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "148:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "132:32:0" - }, - "returnParameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "188:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "188:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "187:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 18, - "nodeType": "FunctionDefinition", - "src": "198:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "207:9:0", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13, - "mutability": "mutable", - "name": "owner", - "nameLocation": "225:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "217:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "216:15:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "255:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "255:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "254:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 19 - ], - "name": "AToken", - "nameLocation": "103:6:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 27, - "nodeType": "ContractDefinition", - "src": "265:89:0", - "nodes": [ - { - "id": 26, - "nodeType": "FunctionDefinition", - "src": "289:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "298:9:0", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "owner", - "nameLocation": "316:5:0", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "308:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "307:15:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "346:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "346:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "345:6:0" - }, - "scope": 27, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "DebtToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 27 - ], - "name": "DebtToken", - "nameLocation": "275:9:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 34, - "nodeType": "ContractDefinition", - "src": "356:111:0", - "nodes": [ - { - "id": 33, - "nodeType": "FunctionDefinition", - "src": "399:66:0", - "functionSelector": "fca513a8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPriceOracle", - "nameLocation": "408:14:0", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [], - "src": "422:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "448:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 30, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 29, - "name": "AavePriceOracle", - "nameLocations": [ - "448:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "448:15:0" - }, - "referencedDeclaration": 54, - "src": "448:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "447:17:0" - }, - "scope": 34, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPoolAddressesProvider", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 34 - ], - "name": "LendingPoolAddressesProvider", - "nameLocation": "366:28:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 46, - "nodeType": "ContractDefinition", - "src": "469:489:0", - "nodes": [ - { - "id": 37, - "nodeType": "StructDefinition", - "src": "495:361:0", - "canonicalName": "LendingPool.ReserveConfigurationMap", - "members": [ - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "data", - "nameLocation": "847:4:0", - "nodeType": "VariableDeclaration", - "scope": 37, - "src": "839:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "839:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ReserveConfigurationMap", - "nameLocation": "502:23:0", - "scope": 46, - "visibility": "public" - }, - { - "id": 45, - "nodeType": "FunctionDefinition", - "src": "860:96:0", - "functionSelector": "c44b11f7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getConfiguration", - "nameLocation": "869:16:0", - "parameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "asset", - "nameLocation": "894:5:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "886:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "886:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "885:15:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "924:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 42, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 41, - "name": "ReserveConfigurationMap", - "nameLocations": [ - "924:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "924:23:0" - }, - "referencedDeclaration": 37, - "src": "924:23:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "src": "923:32:0" - }, - "scope": 46, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPool", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 46 - ], - "name": "LendingPool", - "nameLocation": "479:11:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 54, - "nodeType": "ContractDefinition", - "src": "960:99:0", - "nodes": [ - { - "id": 53, - "nodeType": "FunctionDefinition", - "src": "990:67:0", - "functionSelector": "b3596f07", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetPrice", - "nameLocation": "999:13:0", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "asset", - "nameLocation": "1021:5:0", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1013:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1012:15:0" - }, - "returnParameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 51, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1051:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 50, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1051:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1050:6:0" - }, - "scope": 54, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AavePriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 54 - ], - "name": "AavePriceOracle", - "nameLocation": "970:15:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 287, - "nodeType": "ContractDefinition", - "src": "1061:2431:0", - "nodes": [ - { - "id": 75, - "nodeType": "StructDefinition", - "src": "1100:248:0", - "canonicalName": "AaveV2Query.ATokenMetadata", - "members": [ - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1136:6:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 57, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1156:15:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1148:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1185:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1177:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1177:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1213:9:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1208:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 63, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1233:7:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1228:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "stableDebtBalance", - "nameLocation": "1251:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1246:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 67, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "variableDebtBalance", - "nameLocation": "1279:19:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1274:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "1309:13:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1304:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 71, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1304:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "priceInETH", - "nameLocation": "1333:10:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1328:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 73, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1328:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenMetadata", - "nameLocation": "1107:14:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 87, - "nodeType": "StructDefinition", - "src": "1352:149:0", - "canonicalName": "AaveV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1384:15:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1379:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1422:6:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1405:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 79, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78, - "name": "ATokenMetadata", - "nameLocations": [ - "1405:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "1405:14:0" - }, - "referencedDeclaration": 75, - "src": "1405:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 80, - "nodeType": "ArrayTypeName", - "src": "1405:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1461:10:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1434:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 83, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 82, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1434:26:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1434:26:0" - }, - "referencedDeclaration": 789, - "src": "1434:26:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "usdcPriceInETH", - "nameLocation": "1482:14:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1477:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1359:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 97, - "nodeType": "StructDefinition", - "src": "1505:109:0", - "canonicalName": "AaveV2Query.ATokenRequest", - "members": [ - { - "constant": false, - "id": 90, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1539:6:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1532:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 89, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 88, - "name": "AToken", - "nameLocations": [ - "1532:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "1532:6:0" - }, - "referencedDeclaration": 19, - "src": "1532:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1561:15:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1551:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 92, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 91, - "name": "DebtToken", - "nameLocations": [ - "1551:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1551:9:0" - }, - "referencedDeclaration": 27, - "src": "1551:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1592:17:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1582:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 95, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 94, - "name": "DebtToken", - "nameLocations": [ - "1582:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1582:9:0" - }, - "referencedDeclaration": 27, - "src": "1582:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenRequest", - "nameLocation": "1512:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 194, - "nodeType": "FunctionDefinition", - "src": "1618:845:0", - "body": { - "id": 193, - "nodeType": "Block", - "src": "1895:568:0", - "statements": [ - { - "assignments": [ - 124 - ], - "declarations": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "1917:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1901:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 123, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 122, - "name": "AavePriceOracle", - "nameLocations": [ - "1901:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "1901:15:0" - }, - "referencedDeclaration": 54, - "src": "1901:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 128, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 125, - "name": "provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "1931:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1940:14:0", - "memberName": "getPriceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 33, - "src": "1931:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", - "typeString": "function () view external returns (contract AavePriceOracle)" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1931:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1901:55:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "aTokenCount", - "nameLocation": "1967:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1962:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 133, - "initialValue": { - "expression": { - "id": 131, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "1981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1989:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1981:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1962:33:0" - }, - { - "assignments": [ - 138 - ], - "declarations": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2025:6:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "2001:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 136, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 135, - "name": "ATokenMetadata", - "nameLocations": [ - "2001:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2001:14:0" - }, - "referencedDeclaration": 75, - "src": "2001:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 137, - "nodeType": "ArrayTypeName", - "src": "2001:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 145, - "initialValue": { - "arguments": [ - { - "id": 143, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2055:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2034:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 139, - "name": "ATokenMetadata", - "nameLocations": [ - "2038:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2038:14:0" - }, - "referencedDeclaration": 75, - "src": "2038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 141, - "nodeType": "ArrayTypeName", - "src": "2038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - } - }, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2034:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:66:0" - }, - { - "body": { - "id": 170, - "nodeType": "Block", - "src": "2112:90:0", - "statements": [ - { - "expression": { - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 156, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2120:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "id": 158, - "indexExpression": { - "id": 157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2127:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2120:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 160, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2147:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - { - "id": 161, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2153:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - { - "baseExpression": { - "id": 162, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2166:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 164, - "indexExpression": { - "id": 163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2174:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - } - }, - { - "id": 165, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2178:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 166, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 159, - "name": "aTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2132:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", - "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2132:63:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "src": "2120:75:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "id": 169, - "nodeType": "ExpressionStatement", - "src": "2120:75:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2090:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 151, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2094:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2090:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 171, - "initializationExpression": { - "assignments": [ - 147 - ], - "declarations": [ - { - "constant": false, - "id": 147, - "mutability": "mutable", - "name": "i", - "nameLocation": "2083:1:0", - "nodeType": "VariableDeclaration", - "scope": 171, - "src": "2078:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2078:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "hexValue": "30", - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2087:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2078:10:0" - }, - "loopExpression": { - "expression": { - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2107:3:0", - "subExpression": { - "id": 153, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2107:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 155, - "nodeType": "ExpressionStatement", - "src": "2107:3:0" - }, - "nodeType": "ForStatement", - "src": "2073:129:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 175, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 176, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 173, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2262:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2268:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2262:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2262:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 178, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2313:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 181, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2365:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2382:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2374:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2374:8:0", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2374:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 179, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2341:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2341:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - { - "arguments": [ - { - "id": 189, - "name": "usdcAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2437:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 187, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2423:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "2411:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2411:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 172, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2221:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", - "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2245:15:0", - "2305:6:0", - "2329:10:0", - "2395:14:0" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState", - "usdcPriceInETH" - ], - "nodeType": "FunctionCall", - "src": "2221:237:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 121, - "id": 192, - "nodeType": "Return", - "src": "2208:250:0" - } - ] - }, - "functionSelector": "ec7d7f7a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "1627:15:0", - "parameters": { - "id": 117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "provider", - "nameLocation": "1677:8:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1648:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - }, - "typeName": { - "id": 99, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 98, - "name": "LendingPoolAddressesProvider", - "nameLocations": [ - "1648:28:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34, - "src": "1648:28:0" - }, - "referencedDeclaration": 34, - "src": "1648:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "pool", - "nameLocation": "1703:4:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1691:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 102, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 101, - "name": "LendingPool", - "nameLocations": [ - "1691:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "1691:11:0" - }, - "referencedDeclaration": 46, - "src": "1691:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "mutability": "mutable", - "name": "comet", - "nameLocation": "1719:5:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1713:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 105, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 104, - "name": "Comet", - "nameLocations": [ - "1713:5:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "1713:5:0" - }, - "referencedDeclaration": 598, - "src": "1713:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "aTokens", - "nameLocation": "1755:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1730:32:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 108, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 107, - "name": "ATokenRequest", - "nameLocations": [ - "1730:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "1730:13:0" - }, - "referencedDeclaration": 97, - "src": "1730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "id": 109, - "nodeType": "ArrayTypeName", - "src": "1730:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 112, - "mutability": "mutable", - "name": "account", - "nameLocation": "1784:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1768:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1768:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "spender", - "nameLocation": "1813:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1797:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1797:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "mutability": "mutable", - "name": "usdcAddress", - "nameLocation": "1834:11:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1826:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1642:207:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1873:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - }, - "typeName": { - "id": 119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 118, - "name": "QueryResponse", - "nameLocations": [ - "1873:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 87, - "src": "1873:13:0" - }, - "referencedDeclaration": 87, - "src": "1873:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "1872:22:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 286, - "nodeType": "FunctionDefinition", - "src": "2467:1023:0", - "body": { - "id": 285, - "nodeType": "Block", - "src": "2692:798:0", - "statements": [ - { - "assignments": [ - 215 - ], - "declarations": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "2705:6:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2698:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "AToken", - "nameLocations": [ - "2698:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "2698:6:0" - }, - "referencedDeclaration": 19, - "src": "2698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - } - ], - "id": 218, - "initialValue": { - "expression": { - "id": 216, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2714:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2728:6:0", - "memberName": "aToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "2714:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2698:36:0" - }, - { - "assignments": [ - 221 - ], - "declarations": [ - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "2750:15:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2740:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 220, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 219, - "name": "DebtToken", - "nameLocations": [ - "2740:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2740:9:0" - }, - "referencedDeclaration": 27, - "src": "2740:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 224, - "initialValue": { - "expression": { - "id": 222, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2768:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2782:15:0", - "memberName": "stableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 93, - "src": "2768:29:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2740:57:0" - }, - { - "assignments": [ - 227 - ], - "declarations": [ - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "2813:17:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2803:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 226, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 225, - "name": "DebtToken", - "nameLocations": [ - "2803:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2803:9:0" - }, - "referencedDeclaration": 27, - "src": "2803:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 230, - "initialValue": { - "expression": { - "id": 228, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2833:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2847:17:0", - "memberName": "variableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2833:31:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2803:61:0" - }, - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "2914:13:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2871:56:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "LendingPool.ReserveConfigurationMap", - "nameLocations": [ - "2871:11:0", - "2883:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "2871:35:0" - }, - "referencedDeclaration": 37, - "src": "2871:35:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "id": 243, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 240, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2960:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2952:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2952:7:0", - "typeDescriptions": {} - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2952:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 236, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2930:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2935:16:0", - "memberName": "getConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2930:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", - "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2930:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2871:97:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 247, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3029:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3021:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3021:7:0", - "typeDescriptions": {} - } - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3021:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 251, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3071:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3063:7:0", - "typeDescriptions": {} - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3063:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 255, - "name": "variableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3124:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 253, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3116:7:0", - "typeDescriptions": {} - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3116:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 259, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3180:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 260, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3189:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 257, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3163:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3170:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11, - "src": "3163:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3163:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 264, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3233:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 262, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3216:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3223:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 18, - "src": "3216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3216:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 268, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3296:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 266, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3270:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3286:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3270:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3270:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 272, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3361:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 270, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3335:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3351:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3335:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3335:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 274, - "name": "configuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "id": 275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3408:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 36, - "src": "3394:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 280, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3468:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3460:7:0", - "typeDescriptions": {} - } - }, - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3460:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 276, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "3434:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3446:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "3434:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3434:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 244, - "name": "ATokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2988:14:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", - "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3013:6:0", - "3046:15:0", - "3097:17:0", - "3152:9:0", - "3207:7:0", - "3251:17:0", - "3314:19:0", - "3379:13:0", - "3422:10:0" - ], - "names": [ - "aToken", - "stableDebtToken", - "variableDebtToken", - "allowance", - "balance", - "stableDebtBalance", - "variableDebtBalance", - "configuration", - "priceInETH" - ], - "nodeType": "FunctionCall", - "src": "2988:497:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "functionReturnParameters": 212, - "id": 284, - "nodeType": "Return", - "src": "2975:510:0" - } - ] - }, - "functionSelector": "0abe0bec", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "aTokenMetadata", - "nameLocation": "2476:14:0", - "parameters": { - "id": 208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "pool", - "nameLocation": "2508:4:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2496:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 196, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 195, - "name": "LendingPool", - "nameLocations": [ - "2496:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "2496:11:0" - }, - "referencedDeclaration": 46, - "src": "2496:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2534:11:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2518:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 199, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 198, - "name": "AavePriceOracle", - "nameLocations": [ - "2518:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "2518:15:0" - }, - "referencedDeclaration": 54, - "src": "2518:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "aTokenRequest", - "nameLocation": "2572:13:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2551:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - }, - "typeName": { - "id": 202, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 201, - "name": "ATokenRequest", - "nameLocations": [ - "2551:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "2551:13:0" - }, - "referencedDeclaration": 97, - "src": "2551:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 205, - "mutability": "mutable", - "name": "account", - "nameLocation": "2607:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2591:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2591:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2636:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2620:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 206, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2620:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2490:157:0" - }, - "returnParameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2669:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - }, - "typeName": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "ATokenMetadata", - "nameLocations": [ - "2669:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2669:14:0" - }, - "referencedDeclaration": 75, - "src": "2669:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2668:23:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 55, - "name": "CometQuery", - "nameLocations": [ - "1085:10:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1085:10:0" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1085:10:0" - } - ], - "canonicalName": "AaveV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 287, - 1268 - ], - "name": "AaveV2Query", - "nameLocation": "1070:11:0", - "scope": 288, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 0 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json deleted file mode 100644 index 7a23e1e..0000000 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/AavePriceOracle.json +++ /dev/null @@ -1,3998 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "name": "getAssetPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "getAssetPrice(address)": "b3596f07" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getAssetPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AavePriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getAssetPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/AaveV2Query.sol": "AavePriceOracle" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/AaveV2Query.sol": { - "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", - "urls": [ - "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", - "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" - ], - "license": "UNLICENSED" - }, - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/AaveV2Query.sol", - "id": 288, - "exportedSymbols": { - "AToken": [ - 19 - ], - "AavePriceOracle": [ - 54 - ], - "AaveV2Query": [ - 287 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "DebtToken": [ - 27 - ], - "ERC20": [ - 630 - ], - "LendingPool": [ - 46 - ], - "LendingPoolAddressesProvider": [ - 34 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3454:0", - "nodes": [ - { - "id": 1, - "nodeType": "PragmaDirective", - "src": "39:24:0", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 2, - "nodeType": "ImportDirective", - "src": "65:26:0", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 288, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 19, - "nodeType": "ContractDefinition", - "src": "93:170:0", - "nodes": [ - { - "id": 11, - "nodeType": "FunctionDefinition", - "src": "114:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "123:9:0", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "owner", - "nameLocation": "141:5:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "133:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6, - "mutability": "mutable", - "name": "spender", - "nameLocation": "156:7:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "148:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "132:32:0" - }, - "returnParameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "188:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "188:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "187:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 18, - "nodeType": "FunctionDefinition", - "src": "198:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "207:9:0", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13, - "mutability": "mutable", - "name": "owner", - "nameLocation": "225:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "217:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "216:15:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "255:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "255:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "254:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 19 - ], - "name": "AToken", - "nameLocation": "103:6:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 27, - "nodeType": "ContractDefinition", - "src": "265:89:0", - "nodes": [ - { - "id": 26, - "nodeType": "FunctionDefinition", - "src": "289:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "298:9:0", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "owner", - "nameLocation": "316:5:0", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "308:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "307:15:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "346:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "346:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "345:6:0" - }, - "scope": 27, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "DebtToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 27 - ], - "name": "DebtToken", - "nameLocation": "275:9:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 34, - "nodeType": "ContractDefinition", - "src": "356:111:0", - "nodes": [ - { - "id": 33, - "nodeType": "FunctionDefinition", - "src": "399:66:0", - "functionSelector": "fca513a8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPriceOracle", - "nameLocation": "408:14:0", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [], - "src": "422:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "448:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 30, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 29, - "name": "AavePriceOracle", - "nameLocations": [ - "448:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "448:15:0" - }, - "referencedDeclaration": 54, - "src": "448:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "447:17:0" - }, - "scope": 34, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPoolAddressesProvider", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 34 - ], - "name": "LendingPoolAddressesProvider", - "nameLocation": "366:28:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 46, - "nodeType": "ContractDefinition", - "src": "469:489:0", - "nodes": [ - { - "id": 37, - "nodeType": "StructDefinition", - "src": "495:361:0", - "canonicalName": "LendingPool.ReserveConfigurationMap", - "members": [ - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "data", - "nameLocation": "847:4:0", - "nodeType": "VariableDeclaration", - "scope": 37, - "src": "839:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "839:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ReserveConfigurationMap", - "nameLocation": "502:23:0", - "scope": 46, - "visibility": "public" - }, - { - "id": 45, - "nodeType": "FunctionDefinition", - "src": "860:96:0", - "functionSelector": "c44b11f7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getConfiguration", - "nameLocation": "869:16:0", - "parameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "asset", - "nameLocation": "894:5:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "886:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "886:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "885:15:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "924:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 42, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 41, - "name": "ReserveConfigurationMap", - "nameLocations": [ - "924:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "924:23:0" - }, - "referencedDeclaration": 37, - "src": "924:23:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "src": "923:32:0" - }, - "scope": 46, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPool", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 46 - ], - "name": "LendingPool", - "nameLocation": "479:11:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 54, - "nodeType": "ContractDefinition", - "src": "960:99:0", - "nodes": [ - { - "id": 53, - "nodeType": "FunctionDefinition", - "src": "990:67:0", - "functionSelector": "b3596f07", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetPrice", - "nameLocation": "999:13:0", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "asset", - "nameLocation": "1021:5:0", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1013:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1012:15:0" - }, - "returnParameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 51, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1051:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 50, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1051:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1050:6:0" - }, - "scope": 54, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AavePriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 54 - ], - "name": "AavePriceOracle", - "nameLocation": "970:15:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 287, - "nodeType": "ContractDefinition", - "src": "1061:2431:0", - "nodes": [ - { - "id": 75, - "nodeType": "StructDefinition", - "src": "1100:248:0", - "canonicalName": "AaveV2Query.ATokenMetadata", - "members": [ - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1136:6:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 57, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1156:15:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1148:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1185:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1177:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1177:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1213:9:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1208:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 63, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1233:7:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1228:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "stableDebtBalance", - "nameLocation": "1251:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1246:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 67, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "variableDebtBalance", - "nameLocation": "1279:19:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1274:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "1309:13:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1304:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 71, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1304:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "priceInETH", - "nameLocation": "1333:10:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1328:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 73, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1328:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenMetadata", - "nameLocation": "1107:14:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 87, - "nodeType": "StructDefinition", - "src": "1352:149:0", - "canonicalName": "AaveV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1384:15:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1379:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1422:6:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1405:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 79, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78, - "name": "ATokenMetadata", - "nameLocations": [ - "1405:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "1405:14:0" - }, - "referencedDeclaration": 75, - "src": "1405:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 80, - "nodeType": "ArrayTypeName", - "src": "1405:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1461:10:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1434:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 83, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 82, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1434:26:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1434:26:0" - }, - "referencedDeclaration": 789, - "src": "1434:26:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "usdcPriceInETH", - "nameLocation": "1482:14:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1477:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1359:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 97, - "nodeType": "StructDefinition", - "src": "1505:109:0", - "canonicalName": "AaveV2Query.ATokenRequest", - "members": [ - { - "constant": false, - "id": 90, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1539:6:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1532:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 89, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 88, - "name": "AToken", - "nameLocations": [ - "1532:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "1532:6:0" - }, - "referencedDeclaration": 19, - "src": "1532:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1561:15:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1551:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 92, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 91, - "name": "DebtToken", - "nameLocations": [ - "1551:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1551:9:0" - }, - "referencedDeclaration": 27, - "src": "1551:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1592:17:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1582:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 95, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 94, - "name": "DebtToken", - "nameLocations": [ - "1582:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1582:9:0" - }, - "referencedDeclaration": 27, - "src": "1582:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenRequest", - "nameLocation": "1512:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 194, - "nodeType": "FunctionDefinition", - "src": "1618:845:0", - "body": { - "id": 193, - "nodeType": "Block", - "src": "1895:568:0", - "statements": [ - { - "assignments": [ - 124 - ], - "declarations": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "1917:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1901:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 123, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 122, - "name": "AavePriceOracle", - "nameLocations": [ - "1901:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "1901:15:0" - }, - "referencedDeclaration": 54, - "src": "1901:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 128, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 125, - "name": "provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "1931:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1940:14:0", - "memberName": "getPriceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 33, - "src": "1931:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", - "typeString": "function () view external returns (contract AavePriceOracle)" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1931:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1901:55:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "aTokenCount", - "nameLocation": "1967:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1962:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 133, - "initialValue": { - "expression": { - "id": 131, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "1981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1989:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1981:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1962:33:0" - }, - { - "assignments": [ - 138 - ], - "declarations": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2025:6:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "2001:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 136, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 135, - "name": "ATokenMetadata", - "nameLocations": [ - "2001:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2001:14:0" - }, - "referencedDeclaration": 75, - "src": "2001:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 137, - "nodeType": "ArrayTypeName", - "src": "2001:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 145, - "initialValue": { - "arguments": [ - { - "id": 143, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2055:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2034:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 139, - "name": "ATokenMetadata", - "nameLocations": [ - "2038:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2038:14:0" - }, - "referencedDeclaration": 75, - "src": "2038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 141, - "nodeType": "ArrayTypeName", - "src": "2038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - } - }, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2034:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:66:0" - }, - { - "body": { - "id": 170, - "nodeType": "Block", - "src": "2112:90:0", - "statements": [ - { - "expression": { - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 156, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2120:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "id": 158, - "indexExpression": { - "id": 157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2127:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2120:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 160, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2147:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - { - "id": 161, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2153:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - { - "baseExpression": { - "id": 162, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2166:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 164, - "indexExpression": { - "id": 163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2174:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - } - }, - { - "id": 165, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2178:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 166, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 159, - "name": "aTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2132:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", - "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2132:63:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "src": "2120:75:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "id": 169, - "nodeType": "ExpressionStatement", - "src": "2120:75:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2090:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 151, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2094:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2090:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 171, - "initializationExpression": { - "assignments": [ - 147 - ], - "declarations": [ - { - "constant": false, - "id": 147, - "mutability": "mutable", - "name": "i", - "nameLocation": "2083:1:0", - "nodeType": "VariableDeclaration", - "scope": 171, - "src": "2078:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2078:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "hexValue": "30", - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2087:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2078:10:0" - }, - "loopExpression": { - "expression": { - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2107:3:0", - "subExpression": { - "id": 153, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2107:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 155, - "nodeType": "ExpressionStatement", - "src": "2107:3:0" - }, - "nodeType": "ForStatement", - "src": "2073:129:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 175, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 176, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 173, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2262:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2268:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2262:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2262:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 178, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2313:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 181, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2365:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2382:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2374:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2374:8:0", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2374:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 179, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2341:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2341:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - { - "arguments": [ - { - "id": 189, - "name": "usdcAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2437:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 187, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2423:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "2411:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2411:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 172, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2221:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", - "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2245:15:0", - "2305:6:0", - "2329:10:0", - "2395:14:0" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState", - "usdcPriceInETH" - ], - "nodeType": "FunctionCall", - "src": "2221:237:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 121, - "id": 192, - "nodeType": "Return", - "src": "2208:250:0" - } - ] - }, - "functionSelector": "ec7d7f7a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "1627:15:0", - "parameters": { - "id": 117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "provider", - "nameLocation": "1677:8:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1648:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - }, - "typeName": { - "id": 99, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 98, - "name": "LendingPoolAddressesProvider", - "nameLocations": [ - "1648:28:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34, - "src": "1648:28:0" - }, - "referencedDeclaration": 34, - "src": "1648:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "pool", - "nameLocation": "1703:4:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1691:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 102, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 101, - "name": "LendingPool", - "nameLocations": [ - "1691:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "1691:11:0" - }, - "referencedDeclaration": 46, - "src": "1691:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "mutability": "mutable", - "name": "comet", - "nameLocation": "1719:5:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1713:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 105, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 104, - "name": "Comet", - "nameLocations": [ - "1713:5:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "1713:5:0" - }, - "referencedDeclaration": 598, - "src": "1713:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "aTokens", - "nameLocation": "1755:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1730:32:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 108, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 107, - "name": "ATokenRequest", - "nameLocations": [ - "1730:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "1730:13:0" - }, - "referencedDeclaration": 97, - "src": "1730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "id": 109, - "nodeType": "ArrayTypeName", - "src": "1730:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 112, - "mutability": "mutable", - "name": "account", - "nameLocation": "1784:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1768:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1768:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "spender", - "nameLocation": "1813:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1797:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1797:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "mutability": "mutable", - "name": "usdcAddress", - "nameLocation": "1834:11:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1826:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1642:207:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1873:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - }, - "typeName": { - "id": 119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 118, - "name": "QueryResponse", - "nameLocations": [ - "1873:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 87, - "src": "1873:13:0" - }, - "referencedDeclaration": 87, - "src": "1873:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "1872:22:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 286, - "nodeType": "FunctionDefinition", - "src": "2467:1023:0", - "body": { - "id": 285, - "nodeType": "Block", - "src": "2692:798:0", - "statements": [ - { - "assignments": [ - 215 - ], - "declarations": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "2705:6:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2698:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "AToken", - "nameLocations": [ - "2698:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "2698:6:0" - }, - "referencedDeclaration": 19, - "src": "2698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - } - ], - "id": 218, - "initialValue": { - "expression": { - "id": 216, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2714:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2728:6:0", - "memberName": "aToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "2714:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2698:36:0" - }, - { - "assignments": [ - 221 - ], - "declarations": [ - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "2750:15:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2740:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 220, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 219, - "name": "DebtToken", - "nameLocations": [ - "2740:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2740:9:0" - }, - "referencedDeclaration": 27, - "src": "2740:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 224, - "initialValue": { - "expression": { - "id": 222, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2768:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2782:15:0", - "memberName": "stableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 93, - "src": "2768:29:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2740:57:0" - }, - { - "assignments": [ - 227 - ], - "declarations": [ - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "2813:17:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2803:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 226, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 225, - "name": "DebtToken", - "nameLocations": [ - "2803:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2803:9:0" - }, - "referencedDeclaration": 27, - "src": "2803:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 230, - "initialValue": { - "expression": { - "id": 228, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2833:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2847:17:0", - "memberName": "variableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2833:31:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2803:61:0" - }, - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "2914:13:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2871:56:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "LendingPool.ReserveConfigurationMap", - "nameLocations": [ - "2871:11:0", - "2883:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "2871:35:0" - }, - "referencedDeclaration": 37, - "src": "2871:35:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "id": 243, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 240, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2960:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2952:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2952:7:0", - "typeDescriptions": {} - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2952:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 236, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2930:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2935:16:0", - "memberName": "getConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2930:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", - "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2930:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2871:97:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 247, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3029:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3021:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3021:7:0", - "typeDescriptions": {} - } - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3021:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 251, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3071:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3063:7:0", - "typeDescriptions": {} - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3063:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 255, - "name": "variableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3124:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 253, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3116:7:0", - "typeDescriptions": {} - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3116:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 259, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3180:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 260, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3189:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 257, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3163:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3170:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11, - "src": "3163:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3163:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 264, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3233:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 262, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3216:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3223:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 18, - "src": "3216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3216:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 268, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3296:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 266, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3270:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3286:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3270:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3270:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 272, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3361:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 270, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3335:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3351:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3335:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3335:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 274, - "name": "configuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "id": 275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3408:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 36, - "src": "3394:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 280, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3468:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3460:7:0", - "typeDescriptions": {} - } - }, - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3460:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 276, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "3434:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3446:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "3434:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3434:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 244, - "name": "ATokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2988:14:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", - "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3013:6:0", - "3046:15:0", - "3097:17:0", - "3152:9:0", - "3207:7:0", - "3251:17:0", - "3314:19:0", - "3379:13:0", - "3422:10:0" - ], - "names": [ - "aToken", - "stableDebtToken", - "variableDebtToken", - "allowance", - "balance", - "stableDebtBalance", - "variableDebtBalance", - "configuration", - "priceInETH" - ], - "nodeType": "FunctionCall", - "src": "2988:497:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "functionReturnParameters": 212, - "id": 284, - "nodeType": "Return", - "src": "2975:510:0" - } - ] - }, - "functionSelector": "0abe0bec", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "aTokenMetadata", - "nameLocation": "2476:14:0", - "parameters": { - "id": 208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "pool", - "nameLocation": "2508:4:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2496:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 196, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 195, - "name": "LendingPool", - "nameLocations": [ - "2496:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "2496:11:0" - }, - "referencedDeclaration": 46, - "src": "2496:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2534:11:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2518:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 199, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 198, - "name": "AavePriceOracle", - "nameLocations": [ - "2518:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "2518:15:0" - }, - "referencedDeclaration": 54, - "src": "2518:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "aTokenRequest", - "nameLocation": "2572:13:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2551:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - }, - "typeName": { - "id": 202, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 201, - "name": "ATokenRequest", - "nameLocations": [ - "2551:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "2551:13:0" - }, - "referencedDeclaration": 97, - "src": "2551:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 205, - "mutability": "mutable", - "name": "account", - "nameLocation": "2607:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2591:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2591:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2636:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2620:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 206, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2620:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2490:157:0" - }, - "returnParameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2669:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - }, - "typeName": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "ATokenMetadata", - "nameLocations": [ - "2669:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2669:14:0" - }, - "referencedDeclaration": 75, - "src": "2669:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2668:23:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 55, - "name": "CometQuery", - "nameLocations": [ - "1085:10:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1085:10:0" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1085:10:0" - } - ], - "canonicalName": "AaveV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 287, - 1268 - ], - "name": "AaveV2Query", - "nameLocation": "1070:11:0", - "scope": 288, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 0 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json b/web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json deleted file mode 100644 index 000dd60..0000000 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/DebtToken.json +++ /dev/null @@ -1,3998 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "balanceOf(address)": "70a08231" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"DebtToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/AaveV2Query.sol": "DebtToken" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/AaveV2Query.sol": { - "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", - "urls": [ - "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", - "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" - ], - "license": "UNLICENSED" - }, - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/AaveV2Query.sol", - "id": 288, - "exportedSymbols": { - "AToken": [ - 19 - ], - "AavePriceOracle": [ - 54 - ], - "AaveV2Query": [ - 287 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "DebtToken": [ - 27 - ], - "ERC20": [ - 630 - ], - "LendingPool": [ - 46 - ], - "LendingPoolAddressesProvider": [ - 34 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3454:0", - "nodes": [ - { - "id": 1, - "nodeType": "PragmaDirective", - "src": "39:24:0", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 2, - "nodeType": "ImportDirective", - "src": "65:26:0", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 288, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 19, - "nodeType": "ContractDefinition", - "src": "93:170:0", - "nodes": [ - { - "id": 11, - "nodeType": "FunctionDefinition", - "src": "114:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "123:9:0", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "owner", - "nameLocation": "141:5:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "133:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6, - "mutability": "mutable", - "name": "spender", - "nameLocation": "156:7:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "148:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "132:32:0" - }, - "returnParameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "188:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "188:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "187:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 18, - "nodeType": "FunctionDefinition", - "src": "198:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "207:9:0", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13, - "mutability": "mutable", - "name": "owner", - "nameLocation": "225:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "217:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "216:15:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "255:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "255:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "254:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 19 - ], - "name": "AToken", - "nameLocation": "103:6:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 27, - "nodeType": "ContractDefinition", - "src": "265:89:0", - "nodes": [ - { - "id": 26, - "nodeType": "FunctionDefinition", - "src": "289:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "298:9:0", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "owner", - "nameLocation": "316:5:0", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "308:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "307:15:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "346:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "346:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "345:6:0" - }, - "scope": 27, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "DebtToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 27 - ], - "name": "DebtToken", - "nameLocation": "275:9:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 34, - "nodeType": "ContractDefinition", - "src": "356:111:0", - "nodes": [ - { - "id": 33, - "nodeType": "FunctionDefinition", - "src": "399:66:0", - "functionSelector": "fca513a8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPriceOracle", - "nameLocation": "408:14:0", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [], - "src": "422:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "448:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 30, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 29, - "name": "AavePriceOracle", - "nameLocations": [ - "448:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "448:15:0" - }, - "referencedDeclaration": 54, - "src": "448:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "447:17:0" - }, - "scope": 34, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPoolAddressesProvider", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 34 - ], - "name": "LendingPoolAddressesProvider", - "nameLocation": "366:28:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 46, - "nodeType": "ContractDefinition", - "src": "469:489:0", - "nodes": [ - { - "id": 37, - "nodeType": "StructDefinition", - "src": "495:361:0", - "canonicalName": "LendingPool.ReserveConfigurationMap", - "members": [ - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "data", - "nameLocation": "847:4:0", - "nodeType": "VariableDeclaration", - "scope": 37, - "src": "839:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "839:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ReserveConfigurationMap", - "nameLocation": "502:23:0", - "scope": 46, - "visibility": "public" - }, - { - "id": 45, - "nodeType": "FunctionDefinition", - "src": "860:96:0", - "functionSelector": "c44b11f7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getConfiguration", - "nameLocation": "869:16:0", - "parameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "asset", - "nameLocation": "894:5:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "886:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "886:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "885:15:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "924:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 42, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 41, - "name": "ReserveConfigurationMap", - "nameLocations": [ - "924:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "924:23:0" - }, - "referencedDeclaration": 37, - "src": "924:23:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "src": "923:32:0" - }, - "scope": 46, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPool", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 46 - ], - "name": "LendingPool", - "nameLocation": "479:11:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 54, - "nodeType": "ContractDefinition", - "src": "960:99:0", - "nodes": [ - { - "id": 53, - "nodeType": "FunctionDefinition", - "src": "990:67:0", - "functionSelector": "b3596f07", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetPrice", - "nameLocation": "999:13:0", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "asset", - "nameLocation": "1021:5:0", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1013:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1012:15:0" - }, - "returnParameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 51, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1051:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 50, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1051:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1050:6:0" - }, - "scope": 54, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AavePriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 54 - ], - "name": "AavePriceOracle", - "nameLocation": "970:15:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 287, - "nodeType": "ContractDefinition", - "src": "1061:2431:0", - "nodes": [ - { - "id": 75, - "nodeType": "StructDefinition", - "src": "1100:248:0", - "canonicalName": "AaveV2Query.ATokenMetadata", - "members": [ - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1136:6:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 57, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1156:15:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1148:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1185:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1177:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1177:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1213:9:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1208:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 63, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1233:7:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1228:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "stableDebtBalance", - "nameLocation": "1251:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1246:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 67, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "variableDebtBalance", - "nameLocation": "1279:19:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1274:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "1309:13:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1304:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 71, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1304:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "priceInETH", - "nameLocation": "1333:10:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1328:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 73, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1328:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenMetadata", - "nameLocation": "1107:14:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 87, - "nodeType": "StructDefinition", - "src": "1352:149:0", - "canonicalName": "AaveV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1384:15:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1379:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1422:6:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1405:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 79, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78, - "name": "ATokenMetadata", - "nameLocations": [ - "1405:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "1405:14:0" - }, - "referencedDeclaration": 75, - "src": "1405:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 80, - "nodeType": "ArrayTypeName", - "src": "1405:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1461:10:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1434:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 83, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 82, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1434:26:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1434:26:0" - }, - "referencedDeclaration": 789, - "src": "1434:26:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "usdcPriceInETH", - "nameLocation": "1482:14:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1477:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1359:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 97, - "nodeType": "StructDefinition", - "src": "1505:109:0", - "canonicalName": "AaveV2Query.ATokenRequest", - "members": [ - { - "constant": false, - "id": 90, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1539:6:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1532:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 89, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 88, - "name": "AToken", - "nameLocations": [ - "1532:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "1532:6:0" - }, - "referencedDeclaration": 19, - "src": "1532:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1561:15:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1551:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 92, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 91, - "name": "DebtToken", - "nameLocations": [ - "1551:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1551:9:0" - }, - "referencedDeclaration": 27, - "src": "1551:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1592:17:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1582:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 95, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 94, - "name": "DebtToken", - "nameLocations": [ - "1582:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1582:9:0" - }, - "referencedDeclaration": 27, - "src": "1582:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenRequest", - "nameLocation": "1512:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 194, - "nodeType": "FunctionDefinition", - "src": "1618:845:0", - "body": { - "id": 193, - "nodeType": "Block", - "src": "1895:568:0", - "statements": [ - { - "assignments": [ - 124 - ], - "declarations": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "1917:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1901:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 123, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 122, - "name": "AavePriceOracle", - "nameLocations": [ - "1901:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "1901:15:0" - }, - "referencedDeclaration": 54, - "src": "1901:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 128, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 125, - "name": "provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "1931:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1940:14:0", - "memberName": "getPriceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 33, - "src": "1931:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", - "typeString": "function () view external returns (contract AavePriceOracle)" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1931:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1901:55:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "aTokenCount", - "nameLocation": "1967:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1962:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 133, - "initialValue": { - "expression": { - "id": 131, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "1981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1989:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1981:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1962:33:0" - }, - { - "assignments": [ - 138 - ], - "declarations": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2025:6:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "2001:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 136, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 135, - "name": "ATokenMetadata", - "nameLocations": [ - "2001:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2001:14:0" - }, - "referencedDeclaration": 75, - "src": "2001:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 137, - "nodeType": "ArrayTypeName", - "src": "2001:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 145, - "initialValue": { - "arguments": [ - { - "id": 143, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2055:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2034:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 139, - "name": "ATokenMetadata", - "nameLocations": [ - "2038:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2038:14:0" - }, - "referencedDeclaration": 75, - "src": "2038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 141, - "nodeType": "ArrayTypeName", - "src": "2038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - } - }, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2034:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:66:0" - }, - { - "body": { - "id": 170, - "nodeType": "Block", - "src": "2112:90:0", - "statements": [ - { - "expression": { - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 156, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2120:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "id": 158, - "indexExpression": { - "id": 157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2127:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2120:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 160, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2147:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - { - "id": 161, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2153:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - { - "baseExpression": { - "id": 162, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2166:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 164, - "indexExpression": { - "id": 163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2174:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - } - }, - { - "id": 165, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2178:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 166, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 159, - "name": "aTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2132:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", - "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2132:63:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "src": "2120:75:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "id": 169, - "nodeType": "ExpressionStatement", - "src": "2120:75:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2090:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 151, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2094:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2090:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 171, - "initializationExpression": { - "assignments": [ - 147 - ], - "declarations": [ - { - "constant": false, - "id": 147, - "mutability": "mutable", - "name": "i", - "nameLocation": "2083:1:0", - "nodeType": "VariableDeclaration", - "scope": 171, - "src": "2078:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2078:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "hexValue": "30", - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2087:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2078:10:0" - }, - "loopExpression": { - "expression": { - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2107:3:0", - "subExpression": { - "id": 153, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2107:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 155, - "nodeType": "ExpressionStatement", - "src": "2107:3:0" - }, - "nodeType": "ForStatement", - "src": "2073:129:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 175, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 176, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 173, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2262:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2268:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2262:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2262:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 178, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2313:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 181, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2365:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2382:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2374:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2374:8:0", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2374:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 179, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2341:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2341:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - { - "arguments": [ - { - "id": 189, - "name": "usdcAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2437:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 187, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2423:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "2411:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2411:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 172, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2221:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", - "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2245:15:0", - "2305:6:0", - "2329:10:0", - "2395:14:0" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState", - "usdcPriceInETH" - ], - "nodeType": "FunctionCall", - "src": "2221:237:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 121, - "id": 192, - "nodeType": "Return", - "src": "2208:250:0" - } - ] - }, - "functionSelector": "ec7d7f7a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "1627:15:0", - "parameters": { - "id": 117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "provider", - "nameLocation": "1677:8:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1648:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - }, - "typeName": { - "id": 99, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 98, - "name": "LendingPoolAddressesProvider", - "nameLocations": [ - "1648:28:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34, - "src": "1648:28:0" - }, - "referencedDeclaration": 34, - "src": "1648:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "pool", - "nameLocation": "1703:4:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1691:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 102, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 101, - "name": "LendingPool", - "nameLocations": [ - "1691:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "1691:11:0" - }, - "referencedDeclaration": 46, - "src": "1691:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "mutability": "mutable", - "name": "comet", - "nameLocation": "1719:5:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1713:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 105, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 104, - "name": "Comet", - "nameLocations": [ - "1713:5:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "1713:5:0" - }, - "referencedDeclaration": 598, - "src": "1713:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "aTokens", - "nameLocation": "1755:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1730:32:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 108, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 107, - "name": "ATokenRequest", - "nameLocations": [ - "1730:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "1730:13:0" - }, - "referencedDeclaration": 97, - "src": "1730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "id": 109, - "nodeType": "ArrayTypeName", - "src": "1730:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 112, - "mutability": "mutable", - "name": "account", - "nameLocation": "1784:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1768:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1768:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "spender", - "nameLocation": "1813:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1797:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1797:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "mutability": "mutable", - "name": "usdcAddress", - "nameLocation": "1834:11:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1826:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1642:207:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1873:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - }, - "typeName": { - "id": 119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 118, - "name": "QueryResponse", - "nameLocations": [ - "1873:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 87, - "src": "1873:13:0" - }, - "referencedDeclaration": 87, - "src": "1873:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "1872:22:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 286, - "nodeType": "FunctionDefinition", - "src": "2467:1023:0", - "body": { - "id": 285, - "nodeType": "Block", - "src": "2692:798:0", - "statements": [ - { - "assignments": [ - 215 - ], - "declarations": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "2705:6:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2698:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "AToken", - "nameLocations": [ - "2698:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "2698:6:0" - }, - "referencedDeclaration": 19, - "src": "2698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - } - ], - "id": 218, - "initialValue": { - "expression": { - "id": 216, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2714:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2728:6:0", - "memberName": "aToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "2714:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2698:36:0" - }, - { - "assignments": [ - 221 - ], - "declarations": [ - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "2750:15:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2740:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 220, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 219, - "name": "DebtToken", - "nameLocations": [ - "2740:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2740:9:0" - }, - "referencedDeclaration": 27, - "src": "2740:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 224, - "initialValue": { - "expression": { - "id": 222, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2768:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2782:15:0", - "memberName": "stableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 93, - "src": "2768:29:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2740:57:0" - }, - { - "assignments": [ - 227 - ], - "declarations": [ - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "2813:17:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2803:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 226, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 225, - "name": "DebtToken", - "nameLocations": [ - "2803:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2803:9:0" - }, - "referencedDeclaration": 27, - "src": "2803:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 230, - "initialValue": { - "expression": { - "id": 228, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2833:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2847:17:0", - "memberName": "variableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2833:31:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2803:61:0" - }, - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "2914:13:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2871:56:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "LendingPool.ReserveConfigurationMap", - "nameLocations": [ - "2871:11:0", - "2883:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "2871:35:0" - }, - "referencedDeclaration": 37, - "src": "2871:35:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "id": 243, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 240, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2960:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2952:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2952:7:0", - "typeDescriptions": {} - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2952:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 236, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2930:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2935:16:0", - "memberName": "getConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2930:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", - "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2930:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2871:97:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 247, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3029:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3021:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3021:7:0", - "typeDescriptions": {} - } - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3021:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 251, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3071:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3063:7:0", - "typeDescriptions": {} - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3063:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 255, - "name": "variableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3124:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 253, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3116:7:0", - "typeDescriptions": {} - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3116:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 259, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3180:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 260, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3189:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 257, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3163:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3170:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11, - "src": "3163:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3163:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 264, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3233:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 262, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3216:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3223:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 18, - "src": "3216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3216:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 268, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3296:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 266, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3270:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3286:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3270:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3270:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 272, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3361:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 270, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3335:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3351:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3335:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3335:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 274, - "name": "configuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "id": 275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3408:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 36, - "src": "3394:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 280, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3468:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3460:7:0", - "typeDescriptions": {} - } - }, - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3460:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 276, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "3434:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3446:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "3434:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3434:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 244, - "name": "ATokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2988:14:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", - "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3013:6:0", - "3046:15:0", - "3097:17:0", - "3152:9:0", - "3207:7:0", - "3251:17:0", - "3314:19:0", - "3379:13:0", - "3422:10:0" - ], - "names": [ - "aToken", - "stableDebtToken", - "variableDebtToken", - "allowance", - "balance", - "stableDebtBalance", - "variableDebtBalance", - "configuration", - "priceInETH" - ], - "nodeType": "FunctionCall", - "src": "2988:497:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "functionReturnParameters": 212, - "id": 284, - "nodeType": "Return", - "src": "2975:510:0" - } - ] - }, - "functionSelector": "0abe0bec", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "aTokenMetadata", - "nameLocation": "2476:14:0", - "parameters": { - "id": 208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "pool", - "nameLocation": "2508:4:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2496:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 196, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 195, - "name": "LendingPool", - "nameLocations": [ - "2496:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "2496:11:0" - }, - "referencedDeclaration": 46, - "src": "2496:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2534:11:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2518:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 199, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 198, - "name": "AavePriceOracle", - "nameLocations": [ - "2518:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "2518:15:0" - }, - "referencedDeclaration": 54, - "src": "2518:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "aTokenRequest", - "nameLocation": "2572:13:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2551:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - }, - "typeName": { - "id": 202, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 201, - "name": "ATokenRequest", - "nameLocations": [ - "2551:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "2551:13:0" - }, - "referencedDeclaration": 97, - "src": "2551:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 205, - "mutability": "mutable", - "name": "account", - "nameLocation": "2607:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2591:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2591:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2636:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2620:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 206, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2620:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2490:157:0" - }, - "returnParameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2669:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - }, - "typeName": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "ATokenMetadata", - "nameLocations": [ - "2669:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2669:14:0" - }, - "referencedDeclaration": 75, - "src": "2669:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2668:23:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 55, - "name": "CometQuery", - "nameLocations": [ - "1085:10:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1085:10:0" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1085:10:0" - } - ], - "canonicalName": "AaveV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 287, - 1268 - ], - "name": "AaveV2Query", - "nameLocation": "1070:11:0", - "scope": 288, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 0 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json b/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json deleted file mode 100644 index 8982cf3..0000000 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPool.json +++ /dev/null @@ -1,4012 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "name": "getConfiguration", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "internalType": "struct LendingPool.ReserveConfigurationMap", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "getConfiguration(address)": "c44b11f7" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"data\",\"type\":\"uint256\"}],\"internalType\":\"struct LendingPool.ReserveConfigurationMap\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"LendingPool\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getConfiguration", - "outputs": [ - { - "internalType": "struct LendingPool.ReserveConfigurationMap", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ] - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/AaveV2Query.sol": "LendingPool" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/AaveV2Query.sol": { - "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", - "urls": [ - "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", - "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" - ], - "license": "UNLICENSED" - }, - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/AaveV2Query.sol", - "id": 288, - "exportedSymbols": { - "AToken": [ - 19 - ], - "AavePriceOracle": [ - 54 - ], - "AaveV2Query": [ - 287 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "DebtToken": [ - 27 - ], - "ERC20": [ - 630 - ], - "LendingPool": [ - 46 - ], - "LendingPoolAddressesProvider": [ - 34 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3454:0", - "nodes": [ - { - "id": 1, - "nodeType": "PragmaDirective", - "src": "39:24:0", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 2, - "nodeType": "ImportDirective", - "src": "65:26:0", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 288, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 19, - "nodeType": "ContractDefinition", - "src": "93:170:0", - "nodes": [ - { - "id": 11, - "nodeType": "FunctionDefinition", - "src": "114:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "123:9:0", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "owner", - "nameLocation": "141:5:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "133:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6, - "mutability": "mutable", - "name": "spender", - "nameLocation": "156:7:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "148:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "132:32:0" - }, - "returnParameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "188:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "188:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "187:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 18, - "nodeType": "FunctionDefinition", - "src": "198:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "207:9:0", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13, - "mutability": "mutable", - "name": "owner", - "nameLocation": "225:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "217:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "216:15:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "255:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "255:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "254:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 19 - ], - "name": "AToken", - "nameLocation": "103:6:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 27, - "nodeType": "ContractDefinition", - "src": "265:89:0", - "nodes": [ - { - "id": 26, - "nodeType": "FunctionDefinition", - "src": "289:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "298:9:0", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "owner", - "nameLocation": "316:5:0", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "308:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "307:15:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "346:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "346:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "345:6:0" - }, - "scope": 27, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "DebtToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 27 - ], - "name": "DebtToken", - "nameLocation": "275:9:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 34, - "nodeType": "ContractDefinition", - "src": "356:111:0", - "nodes": [ - { - "id": 33, - "nodeType": "FunctionDefinition", - "src": "399:66:0", - "functionSelector": "fca513a8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPriceOracle", - "nameLocation": "408:14:0", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [], - "src": "422:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "448:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 30, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 29, - "name": "AavePriceOracle", - "nameLocations": [ - "448:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "448:15:0" - }, - "referencedDeclaration": 54, - "src": "448:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "447:17:0" - }, - "scope": 34, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPoolAddressesProvider", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 34 - ], - "name": "LendingPoolAddressesProvider", - "nameLocation": "366:28:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 46, - "nodeType": "ContractDefinition", - "src": "469:489:0", - "nodes": [ - { - "id": 37, - "nodeType": "StructDefinition", - "src": "495:361:0", - "canonicalName": "LendingPool.ReserveConfigurationMap", - "members": [ - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "data", - "nameLocation": "847:4:0", - "nodeType": "VariableDeclaration", - "scope": 37, - "src": "839:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "839:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ReserveConfigurationMap", - "nameLocation": "502:23:0", - "scope": 46, - "visibility": "public" - }, - { - "id": 45, - "nodeType": "FunctionDefinition", - "src": "860:96:0", - "functionSelector": "c44b11f7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getConfiguration", - "nameLocation": "869:16:0", - "parameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "asset", - "nameLocation": "894:5:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "886:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "886:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "885:15:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "924:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 42, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 41, - "name": "ReserveConfigurationMap", - "nameLocations": [ - "924:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "924:23:0" - }, - "referencedDeclaration": 37, - "src": "924:23:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "src": "923:32:0" - }, - "scope": 46, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPool", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 46 - ], - "name": "LendingPool", - "nameLocation": "479:11:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 54, - "nodeType": "ContractDefinition", - "src": "960:99:0", - "nodes": [ - { - "id": 53, - "nodeType": "FunctionDefinition", - "src": "990:67:0", - "functionSelector": "b3596f07", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetPrice", - "nameLocation": "999:13:0", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "asset", - "nameLocation": "1021:5:0", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1013:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1012:15:0" - }, - "returnParameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 51, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1051:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 50, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1051:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1050:6:0" - }, - "scope": 54, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AavePriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 54 - ], - "name": "AavePriceOracle", - "nameLocation": "970:15:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 287, - "nodeType": "ContractDefinition", - "src": "1061:2431:0", - "nodes": [ - { - "id": 75, - "nodeType": "StructDefinition", - "src": "1100:248:0", - "canonicalName": "AaveV2Query.ATokenMetadata", - "members": [ - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1136:6:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 57, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1156:15:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1148:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1185:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1177:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1177:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1213:9:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1208:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 63, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1233:7:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1228:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "stableDebtBalance", - "nameLocation": "1251:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1246:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 67, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "variableDebtBalance", - "nameLocation": "1279:19:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1274:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "1309:13:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1304:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 71, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1304:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "priceInETH", - "nameLocation": "1333:10:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1328:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 73, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1328:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenMetadata", - "nameLocation": "1107:14:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 87, - "nodeType": "StructDefinition", - "src": "1352:149:0", - "canonicalName": "AaveV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1384:15:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1379:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1422:6:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1405:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 79, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78, - "name": "ATokenMetadata", - "nameLocations": [ - "1405:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "1405:14:0" - }, - "referencedDeclaration": 75, - "src": "1405:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 80, - "nodeType": "ArrayTypeName", - "src": "1405:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1461:10:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1434:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 83, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 82, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1434:26:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1434:26:0" - }, - "referencedDeclaration": 789, - "src": "1434:26:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "usdcPriceInETH", - "nameLocation": "1482:14:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1477:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1359:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 97, - "nodeType": "StructDefinition", - "src": "1505:109:0", - "canonicalName": "AaveV2Query.ATokenRequest", - "members": [ - { - "constant": false, - "id": 90, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1539:6:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1532:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 89, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 88, - "name": "AToken", - "nameLocations": [ - "1532:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "1532:6:0" - }, - "referencedDeclaration": 19, - "src": "1532:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1561:15:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1551:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 92, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 91, - "name": "DebtToken", - "nameLocations": [ - "1551:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1551:9:0" - }, - "referencedDeclaration": 27, - "src": "1551:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1592:17:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1582:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 95, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 94, - "name": "DebtToken", - "nameLocations": [ - "1582:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1582:9:0" - }, - "referencedDeclaration": 27, - "src": "1582:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenRequest", - "nameLocation": "1512:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 194, - "nodeType": "FunctionDefinition", - "src": "1618:845:0", - "body": { - "id": 193, - "nodeType": "Block", - "src": "1895:568:0", - "statements": [ - { - "assignments": [ - 124 - ], - "declarations": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "1917:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1901:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 123, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 122, - "name": "AavePriceOracle", - "nameLocations": [ - "1901:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "1901:15:0" - }, - "referencedDeclaration": 54, - "src": "1901:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 128, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 125, - "name": "provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "1931:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1940:14:0", - "memberName": "getPriceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 33, - "src": "1931:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", - "typeString": "function () view external returns (contract AavePriceOracle)" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1931:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1901:55:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "aTokenCount", - "nameLocation": "1967:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1962:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 133, - "initialValue": { - "expression": { - "id": 131, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "1981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1989:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1981:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1962:33:0" - }, - { - "assignments": [ - 138 - ], - "declarations": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2025:6:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "2001:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 136, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 135, - "name": "ATokenMetadata", - "nameLocations": [ - "2001:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2001:14:0" - }, - "referencedDeclaration": 75, - "src": "2001:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 137, - "nodeType": "ArrayTypeName", - "src": "2001:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 145, - "initialValue": { - "arguments": [ - { - "id": 143, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2055:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2034:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 139, - "name": "ATokenMetadata", - "nameLocations": [ - "2038:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2038:14:0" - }, - "referencedDeclaration": 75, - "src": "2038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 141, - "nodeType": "ArrayTypeName", - "src": "2038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - } - }, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2034:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:66:0" - }, - { - "body": { - "id": 170, - "nodeType": "Block", - "src": "2112:90:0", - "statements": [ - { - "expression": { - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 156, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2120:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "id": 158, - "indexExpression": { - "id": 157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2127:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2120:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 160, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2147:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - { - "id": 161, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2153:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - { - "baseExpression": { - "id": 162, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2166:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 164, - "indexExpression": { - "id": 163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2174:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - } - }, - { - "id": 165, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2178:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 166, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 159, - "name": "aTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2132:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", - "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2132:63:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "src": "2120:75:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "id": 169, - "nodeType": "ExpressionStatement", - "src": "2120:75:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2090:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 151, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2094:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2090:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 171, - "initializationExpression": { - "assignments": [ - 147 - ], - "declarations": [ - { - "constant": false, - "id": 147, - "mutability": "mutable", - "name": "i", - "nameLocation": "2083:1:0", - "nodeType": "VariableDeclaration", - "scope": 171, - "src": "2078:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2078:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "hexValue": "30", - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2087:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2078:10:0" - }, - "loopExpression": { - "expression": { - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2107:3:0", - "subExpression": { - "id": 153, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2107:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 155, - "nodeType": "ExpressionStatement", - "src": "2107:3:0" - }, - "nodeType": "ForStatement", - "src": "2073:129:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 175, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 176, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 173, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2262:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2268:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2262:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2262:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 178, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2313:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 181, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2365:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2382:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2374:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2374:8:0", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2374:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 179, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2341:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2341:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - { - "arguments": [ - { - "id": 189, - "name": "usdcAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2437:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 187, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2423:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "2411:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2411:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 172, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2221:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", - "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2245:15:0", - "2305:6:0", - "2329:10:0", - "2395:14:0" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState", - "usdcPriceInETH" - ], - "nodeType": "FunctionCall", - "src": "2221:237:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 121, - "id": 192, - "nodeType": "Return", - "src": "2208:250:0" - } - ] - }, - "functionSelector": "ec7d7f7a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "1627:15:0", - "parameters": { - "id": 117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "provider", - "nameLocation": "1677:8:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1648:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - }, - "typeName": { - "id": 99, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 98, - "name": "LendingPoolAddressesProvider", - "nameLocations": [ - "1648:28:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34, - "src": "1648:28:0" - }, - "referencedDeclaration": 34, - "src": "1648:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "pool", - "nameLocation": "1703:4:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1691:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 102, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 101, - "name": "LendingPool", - "nameLocations": [ - "1691:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "1691:11:0" - }, - "referencedDeclaration": 46, - "src": "1691:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "mutability": "mutable", - "name": "comet", - "nameLocation": "1719:5:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1713:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 105, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 104, - "name": "Comet", - "nameLocations": [ - "1713:5:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "1713:5:0" - }, - "referencedDeclaration": 598, - "src": "1713:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "aTokens", - "nameLocation": "1755:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1730:32:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 108, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 107, - "name": "ATokenRequest", - "nameLocations": [ - "1730:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "1730:13:0" - }, - "referencedDeclaration": 97, - "src": "1730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "id": 109, - "nodeType": "ArrayTypeName", - "src": "1730:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 112, - "mutability": "mutable", - "name": "account", - "nameLocation": "1784:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1768:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1768:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "spender", - "nameLocation": "1813:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1797:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1797:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "mutability": "mutable", - "name": "usdcAddress", - "nameLocation": "1834:11:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1826:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1642:207:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1873:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - }, - "typeName": { - "id": 119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 118, - "name": "QueryResponse", - "nameLocations": [ - "1873:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 87, - "src": "1873:13:0" - }, - "referencedDeclaration": 87, - "src": "1873:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "1872:22:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 286, - "nodeType": "FunctionDefinition", - "src": "2467:1023:0", - "body": { - "id": 285, - "nodeType": "Block", - "src": "2692:798:0", - "statements": [ - { - "assignments": [ - 215 - ], - "declarations": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "2705:6:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2698:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "AToken", - "nameLocations": [ - "2698:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "2698:6:0" - }, - "referencedDeclaration": 19, - "src": "2698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - } - ], - "id": 218, - "initialValue": { - "expression": { - "id": 216, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2714:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2728:6:0", - "memberName": "aToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "2714:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2698:36:0" - }, - { - "assignments": [ - 221 - ], - "declarations": [ - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "2750:15:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2740:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 220, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 219, - "name": "DebtToken", - "nameLocations": [ - "2740:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2740:9:0" - }, - "referencedDeclaration": 27, - "src": "2740:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 224, - "initialValue": { - "expression": { - "id": 222, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2768:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2782:15:0", - "memberName": "stableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 93, - "src": "2768:29:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2740:57:0" - }, - { - "assignments": [ - 227 - ], - "declarations": [ - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "2813:17:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2803:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 226, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 225, - "name": "DebtToken", - "nameLocations": [ - "2803:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2803:9:0" - }, - "referencedDeclaration": 27, - "src": "2803:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 230, - "initialValue": { - "expression": { - "id": 228, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2833:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2847:17:0", - "memberName": "variableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2833:31:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2803:61:0" - }, - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "2914:13:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2871:56:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "LendingPool.ReserveConfigurationMap", - "nameLocations": [ - "2871:11:0", - "2883:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "2871:35:0" - }, - "referencedDeclaration": 37, - "src": "2871:35:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "id": 243, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 240, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2960:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2952:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2952:7:0", - "typeDescriptions": {} - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2952:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 236, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2930:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2935:16:0", - "memberName": "getConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2930:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", - "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2930:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2871:97:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 247, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3029:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3021:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3021:7:0", - "typeDescriptions": {} - } - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3021:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 251, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3071:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3063:7:0", - "typeDescriptions": {} - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3063:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 255, - "name": "variableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3124:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 253, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3116:7:0", - "typeDescriptions": {} - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3116:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 259, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3180:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 260, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3189:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 257, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3163:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3170:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11, - "src": "3163:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3163:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 264, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3233:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 262, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3216:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3223:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 18, - "src": "3216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3216:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 268, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3296:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 266, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3270:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3286:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3270:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3270:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 272, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3361:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 270, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3335:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3351:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3335:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3335:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 274, - "name": "configuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "id": 275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3408:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 36, - "src": "3394:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 280, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3468:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3460:7:0", - "typeDescriptions": {} - } - }, - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3460:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 276, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "3434:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3446:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "3434:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3434:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 244, - "name": "ATokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2988:14:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", - "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3013:6:0", - "3046:15:0", - "3097:17:0", - "3152:9:0", - "3207:7:0", - "3251:17:0", - "3314:19:0", - "3379:13:0", - "3422:10:0" - ], - "names": [ - "aToken", - "stableDebtToken", - "variableDebtToken", - "allowance", - "balance", - "stableDebtBalance", - "variableDebtBalance", - "configuration", - "priceInETH" - ], - "nodeType": "FunctionCall", - "src": "2988:497:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "functionReturnParameters": 212, - "id": 284, - "nodeType": "Return", - "src": "2975:510:0" - } - ] - }, - "functionSelector": "0abe0bec", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "aTokenMetadata", - "nameLocation": "2476:14:0", - "parameters": { - "id": 208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "pool", - "nameLocation": "2508:4:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2496:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 196, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 195, - "name": "LendingPool", - "nameLocations": [ - "2496:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "2496:11:0" - }, - "referencedDeclaration": 46, - "src": "2496:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2534:11:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2518:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 199, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 198, - "name": "AavePriceOracle", - "nameLocations": [ - "2518:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "2518:15:0" - }, - "referencedDeclaration": 54, - "src": "2518:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "aTokenRequest", - "nameLocation": "2572:13:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2551:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - }, - "typeName": { - "id": 202, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 201, - "name": "ATokenRequest", - "nameLocations": [ - "2551:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "2551:13:0" - }, - "referencedDeclaration": 97, - "src": "2551:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 205, - "mutability": "mutable", - "name": "account", - "nameLocation": "2607:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2591:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2591:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2636:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2620:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 206, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2620:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2490:157:0" - }, - "returnParameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2669:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - }, - "typeName": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "ATokenMetadata", - "nameLocations": [ - "2669:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2669:14:0" - }, - "referencedDeclaration": 75, - "src": "2669:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2668:23:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 55, - "name": "CometQuery", - "nameLocations": [ - "1085:10:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1085:10:0" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1085:10:0" - } - ], - "canonicalName": "AaveV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 287, - 1268 - ], - "name": "AaveV2Query", - "nameLocation": "1070:11:0", - "scope": 288, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 0 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json b/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json deleted file mode 100644 index 69c8522..0000000 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/LendingPoolAddressesProvider.json +++ /dev/null @@ -1,3986 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "name": "getPriceOracle", - "outputs": [ - { - "internalType": "contract AavePriceOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "getPriceOracle()": "fca513a8" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getPriceOracle\",\"outputs\":[{\"internalType\":\"contract AavePriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"LendingPoolAddressesProvider\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getPriceOracle", - "outputs": [ - { - "internalType": "contract AavePriceOracle", - "name": "", - "type": "address" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/AaveV2Query.sol": "LendingPoolAddressesProvider" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/AaveV2Query.sol": { - "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", - "urls": [ - "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", - "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" - ], - "license": "UNLICENSED" - }, - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/AaveV2Query.sol", - "id": 288, - "exportedSymbols": { - "AToken": [ - 19 - ], - "AavePriceOracle": [ - 54 - ], - "AaveV2Query": [ - 287 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "DebtToken": [ - 27 - ], - "ERC20": [ - 630 - ], - "LendingPool": [ - 46 - ], - "LendingPoolAddressesProvider": [ - 34 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3454:0", - "nodes": [ - { - "id": 1, - "nodeType": "PragmaDirective", - "src": "39:24:0", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 2, - "nodeType": "ImportDirective", - "src": "65:26:0", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 288, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 19, - "nodeType": "ContractDefinition", - "src": "93:170:0", - "nodes": [ - { - "id": 11, - "nodeType": "FunctionDefinition", - "src": "114:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "123:9:0", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "owner", - "nameLocation": "141:5:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "133:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6, - "mutability": "mutable", - "name": "spender", - "nameLocation": "156:7:0", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "148:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "132:32:0" - }, - "returnParameters": { - "id": 10, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11, - "src": "188:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "188:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "187:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 18, - "nodeType": "FunctionDefinition", - "src": "198:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "207:9:0", - "parameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13, - "mutability": "mutable", - "name": "owner", - "nameLocation": "225:5:0", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "217:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "216:15:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "255:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 15, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "255:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "254:6:0" - }, - "scope": 19, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 19 - ], - "name": "AToken", - "nameLocation": "103:6:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 27, - "nodeType": "ContractDefinition", - "src": "265:89:0", - "nodes": [ - { - "id": 26, - "nodeType": "FunctionDefinition", - "src": "289:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "298:9:0", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "owner", - "nameLocation": "316:5:0", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "308:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "307:15:0" - }, - "returnParameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "346:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "346:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "345:6:0" - }, - "scope": 27, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "DebtToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 27 - ], - "name": "DebtToken", - "nameLocation": "275:9:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 34, - "nodeType": "ContractDefinition", - "src": "356:111:0", - "nodes": [ - { - "id": 33, - "nodeType": "FunctionDefinition", - "src": "399:66:0", - "functionSelector": "fca513a8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPriceOracle", - "nameLocation": "408:14:0", - "parameters": { - "id": 28, - "nodeType": "ParameterList", - "parameters": [], - "src": "422:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 33, - "src": "448:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 30, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 29, - "name": "AavePriceOracle", - "nameLocations": [ - "448:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "448:15:0" - }, - "referencedDeclaration": 54, - "src": "448:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "447:17:0" - }, - "scope": 34, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPoolAddressesProvider", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 34 - ], - "name": "LendingPoolAddressesProvider", - "nameLocation": "366:28:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 46, - "nodeType": "ContractDefinition", - "src": "469:489:0", - "nodes": [ - { - "id": 37, - "nodeType": "StructDefinition", - "src": "495:361:0", - "canonicalName": "LendingPool.ReserveConfigurationMap", - "members": [ - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "data", - "nameLocation": "847:4:0", - "nodeType": "VariableDeclaration", - "scope": 37, - "src": "839:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "839:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ReserveConfigurationMap", - "nameLocation": "502:23:0", - "scope": 46, - "visibility": "public" - }, - { - "id": 45, - "nodeType": "FunctionDefinition", - "src": "860:96:0", - "functionSelector": "c44b11f7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getConfiguration", - "nameLocation": "869:16:0", - "parameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "asset", - "nameLocation": "894:5:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "886:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 38, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "886:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "885:15:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "924:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 42, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 41, - "name": "ReserveConfigurationMap", - "nameLocations": [ - "924:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "924:23:0" - }, - "referencedDeclaration": 37, - "src": "924:23:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "src": "923:32:0" - }, - "scope": 46, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "LendingPool", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 46 - ], - "name": "LendingPool", - "nameLocation": "479:11:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 54, - "nodeType": "ContractDefinition", - "src": "960:99:0", - "nodes": [ - { - "id": 53, - "nodeType": "FunctionDefinition", - "src": "990:67:0", - "functionSelector": "b3596f07", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetPrice", - "nameLocation": "999:13:0", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "mutability": "mutable", - "name": "asset", - "nameLocation": "1021:5:0", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1013:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1013:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1012:15:0" - }, - "returnParameters": { - "id": 52, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 51, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "1051:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 50, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1051:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1050:6:0" - }, - "scope": 54, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "AavePriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 54 - ], - "name": "AavePriceOracle", - "nameLocation": "970:15:0", - "scope": 288, - "usedErrors": [] - }, - { - "id": 287, - "nodeType": "ContractDefinition", - "src": "1061:2431:0", - "nodes": [ - { - "id": 75, - "nodeType": "StructDefinition", - "src": "1100:248:0", - "canonicalName": "AaveV2Query.ATokenMetadata", - "members": [ - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1136:6:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 57, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1156:15:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1148:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 59, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1148:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 62, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1185:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1177:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1177:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1213:9:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1208:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 63, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 66, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1233:7:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 65, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1228:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "mutability": "mutable", - "name": "stableDebtBalance", - "nameLocation": "1251:17:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1246:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 67, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "mutability": "mutable", - "name": "variableDebtBalance", - "nameLocation": "1279:19:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1274:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 72, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "1309:13:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1304:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 71, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1304:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "priceInETH", - "nameLocation": "1333:10:0", - "nodeType": "VariableDeclaration", - "scope": 75, - "src": "1328:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 73, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1328:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenMetadata", - "nameLocation": "1107:14:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 87, - "nodeType": "StructDefinition", - "src": "1352:149:0", - "canonicalName": "AaveV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1384:15:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1379:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1379:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1422:6:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1405:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 79, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78, - "name": "ATokenMetadata", - "nameLocations": [ - "1405:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "1405:14:0" - }, - "referencedDeclaration": 75, - "src": "1405:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 80, - "nodeType": "ArrayTypeName", - "src": "1405:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1461:10:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1434:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 83, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 82, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1434:26:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1434:26:0" - }, - "referencedDeclaration": 789, - "src": "1434:26:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "mutability": "mutable", - "name": "usdcPriceInETH", - "nameLocation": "1482:14:0", - "nodeType": "VariableDeclaration", - "scope": 87, - "src": "1477:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1359:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 97, - "nodeType": "StructDefinition", - "src": "1505:109:0", - "canonicalName": "AaveV2Query.ATokenRequest", - "members": [ - { - "constant": false, - "id": 90, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "1539:6:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1532:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 89, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 88, - "name": "AToken", - "nameLocations": [ - "1532:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "1532:6:0" - }, - "referencedDeclaration": 19, - "src": "1532:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "1561:15:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1551:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 92, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 91, - "name": "DebtToken", - "nameLocations": [ - "1551:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1551:9:0" - }, - "referencedDeclaration": 27, - "src": "1551:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 96, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "1592:17:0", - "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1582:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 95, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 94, - "name": "DebtToken", - "nameLocations": [ - "1582:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "1582:9:0" - }, - "referencedDeclaration": 27, - "src": "1582:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "name": "ATokenRequest", - "nameLocation": "1512:13:0", - "scope": 287, - "visibility": "public" - }, - { - "id": 194, - "nodeType": "FunctionDefinition", - "src": "1618:845:0", - "body": { - "id": 193, - "nodeType": "Block", - "src": "1895:568:0", - "statements": [ - { - "assignments": [ - 124 - ], - "declarations": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "1917:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1901:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 123, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 122, - "name": "AavePriceOracle", - "nameLocations": [ - "1901:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "1901:15:0" - }, - "referencedDeclaration": 54, - "src": "1901:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 128, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 125, - "name": "provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "1931:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1940:14:0", - "memberName": "getPriceOracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 33, - "src": "1931:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", - "typeString": "function () view external returns (contract AavePriceOracle)" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1931:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1901:55:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "mutability": "mutable", - "name": "aTokenCount", - "nameLocation": "1967:11:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1962:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 133, - "initialValue": { - "expression": { - "id": 131, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "1981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1989:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1981:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1962:33:0" - }, - { - "assignments": [ - 138 - ], - "declarations": [ - { - "constant": false, - "id": 138, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2025:6:0", - "nodeType": "VariableDeclaration", - "scope": 193, - "src": "2001:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 136, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 135, - "name": "ATokenMetadata", - "nameLocations": [ - "2001:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2001:14:0" - }, - "referencedDeclaration": 75, - "src": "2001:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 137, - "nodeType": "ArrayTypeName", - "src": "2001:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 145, - "initialValue": { - "arguments": [ - { - "id": 143, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2055:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2034:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 139, - "name": "ATokenMetadata", - "nameLocations": [ - "2038:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2038:14:0" - }, - "referencedDeclaration": 75, - "src": "2038:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "id": 141, - "nodeType": "ArrayTypeName", - "src": "2038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata[]" - } - } - }, - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2034:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2001:66:0" - }, - { - "body": { - "id": 170, - "nodeType": "Block", - "src": "2112:90:0", - "statements": [ - { - "expression": { - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 156, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2120:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - "id": 158, - "indexExpression": { - "id": 157, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2127:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2120:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 160, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2147:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - { - "id": 161, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2153:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - { - "baseExpression": { - "id": 162, - "name": "aTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2166:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" - } - }, - "id": 164, - "indexExpression": { - "id": 163, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2174:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - } - }, - { - "id": 165, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2178:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 166, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2187:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 159, - "name": "aTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2132:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", - "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2132:63:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "src": "2120:75:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "id": 169, - "nodeType": "ExpressionStatement", - "src": "2120:75:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 150, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2090:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 151, - "name": "aTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2094:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2090:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 171, - "initializationExpression": { - "assignments": [ - 147 - ], - "declarations": [ - { - "constant": false, - "id": 147, - "mutability": "mutable", - "name": "i", - "nameLocation": "2083:1:0", - "nodeType": "VariableDeclaration", - "scope": 171, - "src": "2078:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2078:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "hexValue": "30", - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2087:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2078:10:0" - }, - "loopExpression": { - "expression": { - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2107:3:0", - "subExpression": { - "id": 153, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2107:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 155, - "nodeType": "ExpressionStatement", - "src": "2107:3:0" - }, - "nodeType": "ForStatement", - "src": "2073:129:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 175, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 176, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 173, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2262:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2268:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2262:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2262:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 178, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2313:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 181, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2365:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2382:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2374:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2374:8:0", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2374:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 179, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2341:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2341:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - { - "arguments": [ - { - "id": 189, - "name": "usdcAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2437:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 187, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2423:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "2411:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2411:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 172, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2221:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", - "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" - } - }, - "id": 191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2245:15:0", - "2305:6:0", - "2329:10:0", - "2395:14:0" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState", - "usdcPriceInETH" - ], - "nodeType": "FunctionCall", - "src": "2221:237:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 121, - "id": 192, - "nodeType": "Return", - "src": "2208:250:0" - } - ] - }, - "functionSelector": "ec7d7f7a", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "1627:15:0", - "parameters": { - "id": 117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "provider", - "nameLocation": "1677:8:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1648:37:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - }, - "typeName": { - "id": 99, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 98, - "name": "LendingPoolAddressesProvider", - "nameLocations": [ - "1648:28:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 34, - "src": "1648:28:0" - }, - "referencedDeclaration": 34, - "src": "1648:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", - "typeString": "contract LendingPoolAddressesProvider" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "mutability": "mutable", - "name": "pool", - "nameLocation": "1703:4:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1691:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 102, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 101, - "name": "LendingPool", - "nameLocations": [ - "1691:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "1691:11:0" - }, - "referencedDeclaration": 46, - "src": "1691:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 106, - "mutability": "mutable", - "name": "comet", - "nameLocation": "1719:5:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1713:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 105, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 104, - "name": "Comet", - "nameLocations": [ - "1713:5:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "1713:5:0" - }, - "referencedDeclaration": 598, - "src": "1713:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 110, - "mutability": "mutable", - "name": "aTokens", - "nameLocation": "1755:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1730:32:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 108, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 107, - "name": "ATokenRequest", - "nameLocations": [ - "1730:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "1730:13:0" - }, - "referencedDeclaration": 97, - "src": "1730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "id": 109, - "nodeType": "ArrayTypeName", - "src": "1730:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 112, - "mutability": "mutable", - "name": "account", - "nameLocation": "1784:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1768:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1768:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 114, - "mutability": "mutable", - "name": "spender", - "nameLocation": "1813:7:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1797:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1797:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "mutability": "mutable", - "name": "usdcAddress", - "nameLocation": "1834:11:0", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1826:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1642:207:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1873:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - }, - "typeName": { - "id": 119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 118, - "name": "QueryResponse", - "nameLocations": [ - "1873:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 87, - "src": "1873:13:0" - }, - "referencedDeclaration": 87, - "src": "1873:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", - "typeString": "struct AaveV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "1872:22:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 286, - "nodeType": "FunctionDefinition", - "src": "2467:1023:0", - "body": { - "id": 285, - "nodeType": "Block", - "src": "2692:798:0", - "statements": [ - { - "assignments": [ - 215 - ], - "declarations": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "aToken", - "nameLocation": "2705:6:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2698:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - }, - "typeName": { - "id": 214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 213, - "name": "AToken", - "nameLocations": [ - "2698:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 19, - "src": "2698:6:0" - }, - "referencedDeclaration": 19, - "src": "2698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "visibility": "internal" - } - ], - "id": 218, - "initialValue": { - "expression": { - "id": 216, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2714:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2728:6:0", - "memberName": "aToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "2714:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2698:36:0" - }, - { - "assignments": [ - 221 - ], - "declarations": [ - { - "constant": false, - "id": 221, - "mutability": "mutable", - "name": "stableDebtToken", - "nameLocation": "2750:15:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2740:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 220, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 219, - "name": "DebtToken", - "nameLocations": [ - "2740:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2740:9:0" - }, - "referencedDeclaration": 27, - "src": "2740:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 224, - "initialValue": { - "expression": { - "id": 222, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2768:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2782:15:0", - "memberName": "stableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 93, - "src": "2768:29:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2740:57:0" - }, - { - "assignments": [ - 227 - ], - "declarations": [ - { - "constant": false, - "id": 227, - "mutability": "mutable", - "name": "variableDebtToken", - "nameLocation": "2813:17:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2803:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - }, - "typeName": { - "id": 226, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 225, - "name": "DebtToken", - "nameLocations": [ - "2803:9:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 27, - "src": "2803:9:0" - }, - "referencedDeclaration": 27, - "src": "2803:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "visibility": "internal" - } - ], - "id": 230, - "initialValue": { - "expression": { - "id": 228, - "name": "aTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2833:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest memory" - } - }, - "id": 229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2847:17:0", - "memberName": "variableDebtToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2833:31:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2803:61:0" - }, - { - "assignments": [ - 235 - ], - "declarations": [ - { - "constant": false, - "id": 235, - "mutability": "mutable", - "name": "configuration", - "nameLocation": "2914:13:0", - "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2871:56:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - }, - "typeName": { - "id": 234, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 233, - "name": "LendingPool.ReserveConfigurationMap", - "nameLocations": [ - "2871:11:0", - "2883:23:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 37, - "src": "2871:35:0" - }, - "referencedDeclaration": 37, - "src": "2871:35:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap" - } - }, - "visibility": "internal" - } - ], - "id": 243, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 240, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2960:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2952:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2952:7:0", - "typeDescriptions": {} - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2952:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 236, - "name": "pool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2930:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2935:16:0", - "memberName": "getConfiguration", - "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "2930:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", - "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2930:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2871:97:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 247, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3029:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3021:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3021:7:0", - "typeDescriptions": {} - } - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3021:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 251, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3071:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3063:7:0", - "typeDescriptions": {} - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3063:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 255, - "name": "variableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3124:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - ], - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 253, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3116:7:0", - "typeDescriptions": {} - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3116:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 259, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3180:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 260, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3189:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 257, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3163:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3170:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 11, - "src": "3163:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3163:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 264, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3233:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 262, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3216:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3223:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 18, - "src": "3216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3216:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 268, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3296:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 266, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3270:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3286:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3270:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3270:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 272, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3361:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 270, - "name": "stableDebtToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3335:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DebtToken_$27", - "typeString": "contract DebtToken" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3351:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 26, - "src": "3335:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3335:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 274, - "name": "configuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", - "typeString": "struct LendingPool.ReserveConfigurationMap memory" - } - }, - "id": 275, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3408:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 36, - "src": "3394:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 280, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3468:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3460:7:0", - "typeDescriptions": {} - } - }, - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3460:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 276, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "3434:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3446:13:0", - "memberName": "getAssetPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "3434:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3434:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 244, - "name": "ATokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2988:14:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", - "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3013:6:0", - "3046:15:0", - "3097:17:0", - "3152:9:0", - "3207:7:0", - "3251:17:0", - "3314:19:0", - "3379:13:0", - "3422:10:0" - ], - "names": [ - "aToken", - "stableDebtToken", - "variableDebtToken", - "allowance", - "balance", - "stableDebtBalance", - "variableDebtBalance", - "configuration", - "priceInETH" - ], - "nodeType": "FunctionCall", - "src": "2988:497:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata memory" - } - }, - "functionReturnParameters": 212, - "id": 284, - "nodeType": "Return", - "src": "2975:510:0" - } - ] - }, - "functionSelector": "0abe0bec", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "aTokenMetadata", - "nameLocation": "2476:14:0", - "parameters": { - "id": 208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "pool", - "nameLocation": "2508:4:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2496:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - }, - "typeName": { - "id": 196, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 195, - "name": "LendingPool", - "nameLocations": [ - "2496:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46, - "src": "2496:11:0" - }, - "referencedDeclaration": 46, - "src": "2496:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_LendingPool_$46", - "typeString": "contract LendingPool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2534:11:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2518:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - }, - "typeName": { - "id": 199, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 198, - "name": "AavePriceOracle", - "nameLocations": [ - "2518:15:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54, - "src": "2518:15:0" - }, - "referencedDeclaration": 54, - "src": "2518:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AavePriceOracle_$54", - "typeString": "contract AavePriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 203, - "mutability": "mutable", - "name": "aTokenRequest", - "nameLocation": "2572:13:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2551:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - }, - "typeName": { - "id": 202, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 201, - "name": "ATokenRequest", - "nameLocations": [ - "2551:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "2551:13:0" - }, - "referencedDeclaration": 97, - "src": "2551:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", - "typeString": "struct AaveV2Query.ATokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 205, - "mutability": "mutable", - "name": "account", - "nameLocation": "2607:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2591:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2591:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2636:7:0", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2620:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 206, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2620:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2490:157:0" - }, - "returnParameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2669:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - }, - "typeName": { - "id": 210, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 209, - "name": "ATokenMetadata", - "nameLocations": [ - "2669:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75, - "src": "2669:14:0" - }, - "referencedDeclaration": 75, - "src": "2669:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", - "typeString": "struct AaveV2Query.ATokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2668:23:0" - }, - "scope": 287, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 55, - "name": "CometQuery", - "nameLocations": [ - "1085:10:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1085:10:0" - }, - "id": 56, - "nodeType": "InheritanceSpecifier", - "src": "1085:10:0" - } - ], - "canonicalName": "AaveV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 287, - 1268 - ], - "name": "AaveV2Query", - "nameLocation": "1070:11:0", - "scope": 288, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 0 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CometQuery.sol/Comet.json b/web/helpers/Sleuth/out/CometQuery.sol/Comet.json deleted file mode 100644 index 01f2694..0000000 --- a/web/helpers/Sleuth/out/CometQuery.sol/Comet.json +++ /dev/null @@ -1,15039 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseAccrualScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseBorrowMin", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseIndexScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseMinForRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseScale", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseTokenPriceFeed", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "baseTrackingAccrued", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseTrackingBorrowSpeed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "baseTrackingSupplySpeed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "borrowBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "borrowKink", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "borrowPerSecondInterestRateBase", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "borrowPerSecondInterestRateSlopeHigh", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "borrowPerSecondInterestRateSlopeLow", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "name": "collateralBalanceOf", - "outputs": [ - { - "internalType": "uint128", - "name": "", - "type": "uint128" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "extensionDelegate", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "factorScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "i", - "type": "uint8" - } - ], - "name": "getAssetInfo", - "outputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "offset", - "type": "uint8" - }, - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "address", - "name": "priceFeed", - "type": "address" - }, - { - "internalType": "uint64", - "name": "scale", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "borrowCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidateCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidationFactor", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "supplyCap", - "type": "uint128" - } - ], - "internalType": "struct Comet.AssetInfo", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "name": "getAssetInfoByAddress", - "outputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "offset", - "type": "uint8" - }, - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "address", - "name": "priceFeed", - "type": "address" - }, - { - "internalType": "uint64", - "name": "scale", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "borrowCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidateCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidationFactor", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "supplyCap", - "type": "uint128" - } - ], - "internalType": "struct Comet.AssetInfo", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "utilization", - "type": "uint256" - } - ], - "name": "getBorrowRate", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "name": "getCollateralReserves", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "priceFeed", - "type": "address" - } - ], - "name": "getPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getReserves", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "utilization", - "type": "uint256" - } - ], - "name": "getSupplyRate", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getUtilization", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isBorrowCollateralized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isLiquidatable", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxAssets", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "numAssets", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseGuardian", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "priceScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - } - ], - "name": "quoteCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "storeFrontPriceFactor", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "supplyKink", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "supplyPerSecondInterestRateBase", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "supplyPerSecondInterestRateSlopeHigh", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "supplyPerSecondInterestRateSlopeLow", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "targetReserves", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalBorrow", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalsBasic", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "baseSupplyIndex", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "baseBorrowIndex", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "trackingSupplyIndex", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "trackingBorrowIndex", - "type": "uint64" - }, - { - "internalType": "uint104", - "name": "totalSupplyBase", - "type": "uint104" - }, - { - "internalType": "uint104", - "name": "totalBorrowBase", - "type": "uint104" - }, - { - "internalType": "uint40", - "name": "lastAccrualTime", - "type": "uint40" - }, - { - "internalType": "uint8", - "name": "pauseFlags", - "type": "uint8" - } - ], - "internalType": "struct Comet.TotalsBasic", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "name": "totalsCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "trackingIndexScale", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "balanceOf(address)": "70a08231", - "baseAccrualScale()": "a20ed596", - "baseBorrowMin()": "300e6beb", - "baseIndexScale()": "96e7a9c1", - "baseMinForRewards()": "9364e18a", - "baseScale()": "44c1e5eb", - "baseToken()": "c55dae63", - "baseTokenPriceFeed()": "e7dad6bd", - "baseTrackingAccrued(address)": "ab9ba7f4", - "baseTrackingBorrowSpeed()": "9ea99a5a", - "baseTrackingSupplySpeed()": "189bb2f1", - "borrowBalanceOf(address)": "374c49b4", - "borrowKink()": "9241a561", - "borrowPerSecondInterestRateBase()": "7914acc7", - "borrowPerSecondInterestRateSlopeHigh()": "2a48cf12", - "borrowPerSecondInterestRateSlopeLow()": "2d05670b", - "collateralBalanceOf(address,address)": "5c2549ee", - "extensionDelegate()": "44ff241d", - "factorScale()": "0f21d96b", - "getAssetInfo(uint8)": "c8c7fe6b", - "getAssetInfoByAddress(address)": "3b3bec2e", - "getBorrowRate(uint256)": "9fa83b5a", - "getCollateralReserves(address)": "9ff567f8", - "getPrice(address)": "41976e09", - "getReserves()": "0902f1ac", - "getSupplyRate(uint256)": "d955759d", - "getUtilization()": "7eb71131", - "governor()": "0c340a24", - "isBorrowCollateralized(address)": "38aa813f", - "isLiquidatable(address)": "042e02cf", - "maxAssets()": "94b2294b", - "numAssets()": "a46fe83b", - "pauseGuardian()": "24a3d622", - "priceScale()": "a0fbddaf", - "quoteCollateral(address,uint256)": "7ac88ed1", - "storeFrontPriceFactor()": "1f5954bd", - "supplyKink()": "a5b4ff79", - "supplyPerSecondInterestRateBase()": "94920cca", - "supplyPerSecondInterestRateSlopeHigh()": "804de71f", - "supplyPerSecondInterestRateSlopeLow()": "5a94b8d1", - "targetReserves()": "32176c49", - "totalBorrow()": "8285ef40", - "totalSupply()": "18160ddd", - "totalsBasic()": "b9f0baf7", - "totalsCollateral(address)": "59e017bd", - "trackingIndexScale()": "aba7f15e" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseAccrualScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseBorrowMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseIndexScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseMinForRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseScale\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseTokenPriceFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"baseTrackingAccrued\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseTrackingBorrowSpeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseTrackingSupplySpeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowKink\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowPerSecondInterestRateBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowPerSecondInterestRateSlopeHigh\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"borrowPerSecondInterestRateSlopeLow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"collateralBalanceOf\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extensionDelegate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factorScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"i\",\"type\":\"uint8\"}],\"name\":\"getAssetInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"offset\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"scale\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"borrowCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"supplyCap\",\"type\":\"uint128\"}],\"internalType\":\"struct Comet.AssetInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getAssetInfoByAddress\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"offset\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"scale\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"borrowCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"liquidationFactor\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"supplyCap\",\"type\":\"uint128\"}],\"internalType\":\"struct Comet.AssetInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"utilization\",\"type\":\"uint256\"}],\"name\":\"getBorrowRate\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"getCollateralReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"utilization\",\"type\":\"uint256\"}],\"name\":\"getSupplyRate\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUtilization\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isBorrowCollateralized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isLiquidatable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAssets\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numAssets\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseGuardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"priceScale\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"}],\"name\":\"quoteCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeFrontPriceFactor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyKink\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyPerSecondInterestRateBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyPerSecondInterestRateSlopeHigh\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"supplyPerSecondInterestRateSlopeLow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBorrow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalsBasic\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"baseSupplyIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"baseBorrowIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"trackingSupplyIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"trackingBorrowIndex\",\"type\":\"uint64\"},{\"internalType\":\"uint104\",\"name\":\"totalSupplyBase\",\"type\":\"uint104\"},{\"internalType\":\"uint104\",\"name\":\"totalBorrowBase\",\"type\":\"uint104\"},{\"internalType\":\"uint40\",\"name\":\"lastAccrualTime\",\"type\":\"uint40\"},{\"internalType\":\"uint8\",\"name\":\"pauseFlags\",\"type\":\"uint8\"}],\"internalType\":\"struct Comet.TotalsBasic\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalsCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trackingIndexScale\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"Comet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseAccrualScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseBorrowMin", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseIndexScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseMinForRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseScale", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseTokenPriceFeed", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "baseTrackingAccrued", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseTrackingBorrowSpeed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "baseTrackingSupplySpeed", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "borrowBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "borrowKink", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "borrowPerSecondInterestRateBase", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "borrowPerSecondInterestRateSlopeHigh", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "borrowPerSecondInterestRateSlopeLow", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "collateralBalanceOf", - "outputs": [ - { - "internalType": "uint128", - "name": "", - "type": "uint128" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "extensionDelegate", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "factorScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "i", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getAssetInfo", - "outputs": [ - { - "internalType": "struct Comet.AssetInfo", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "offset", - "type": "uint8" - }, - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "address", - "name": "priceFeed", - "type": "address" - }, - { - "internalType": "uint64", - "name": "scale", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "borrowCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidateCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidationFactor", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "supplyCap", - "type": "uint128" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getAssetInfoByAddress", - "outputs": [ - { - "internalType": "struct Comet.AssetInfo", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint8", - "name": "offset", - "type": "uint8" - }, - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "address", - "name": "priceFeed", - "type": "address" - }, - { - "internalType": "uint64", - "name": "scale", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "borrowCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidateCollateralFactor", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "liquidationFactor", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "supplyCap", - "type": "uint128" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "utilization", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getBorrowRate", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getCollateralReserves", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "priceFeed", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getReserves", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "utilization", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getSupplyRate", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "getUtilization", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isBorrowCollateralized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isLiquidatable", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "maxAssets", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "numAssets", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "pauseGuardian", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "priceScale", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "asset", - "type": "address" - }, - { - "internalType": "uint256", - "name": "baseAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "quoteCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "storeFrontPriceFactor", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "supplyKink", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "supplyPerSecondInterestRateBase", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "supplyPerSecondInterestRateSlopeHigh", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "supplyPerSecondInterestRateSlopeLow", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "targetReserves", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalBorrow", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "totalsBasic", - "outputs": [ - { - "internalType": "struct Comet.TotalsBasic", - "name": "", - "type": "tuple", - "components": [ - { - "internalType": "uint64", - "name": "baseSupplyIndex", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "baseBorrowIndex", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "trackingSupplyIndex", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "trackingBorrowIndex", - "type": "uint64" - }, - { - "internalType": "uint104", - "name": "totalSupplyBase", - "type": "uint104" - }, - { - "internalType": "uint104", - "name": "totalBorrowBase", - "type": "uint104" - }, - { - "internalType": "uint40", - "name": "lastAccrualTime", - "type": "uint40" - }, - { - "internalType": "uint8", - "name": "pauseFlags", - "type": "uint8" - } - ] - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "totalsCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "trackingIndexScale", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/CometQuery.sol": "Comet" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/CometQuery.sol", - "id": 1269, - "exportedSymbols": { - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "ERC20": [ - 630 - ] - }, - "nodeType": "SourceUnit", - "src": "39:11860:1", - "nodes": [ - { - "id": 289, - "nodeType": "PragmaDirective", - "src": "39:24:1", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 598, - "nodeType": "ContractDefinition", - "src": "65:3743:1", - "nodes": [ - { - "id": 306, - "nodeType": "StructDefinition", - "src": "85:226:1", - "canonicalName": "Comet.AssetInfo", - "members": [ - { - "constant": false, - "id": 291, - "mutability": "mutable", - "name": "offset", - "nameLocation": "114:6:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "108:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 290, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "108:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "asset", - "nameLocation": "134:5:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "126:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 292, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "126:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 295, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "153:9:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "145:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "145:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 297, - "mutability": "mutable", - "name": "scale", - "nameLocation": "175:5:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "168:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 296, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "168:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 299, - "mutability": "mutable", - "name": "borrowCollateralFactor", - "nameLocation": "193:22:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "186:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 298, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "186:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 301, - "mutability": "mutable", - "name": "liquidateCollateralFactor", - "nameLocation": "228:25:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "221:32:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 300, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "221:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 303, - "mutability": "mutable", - "name": "liquidationFactor", - "nameLocation": "266:17:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "259:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 302, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 305, - "mutability": "mutable", - "name": "supplyCap", - "nameLocation": "297:9:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "289:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 304, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "289:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "name": "AssetInfo", - "nameLocation": "92:9:1", - "scope": 598, - "visibility": "public" - }, - { - "id": 323, - "nodeType": "StructDefinition", - "src": "315:252:1", - "canonicalName": "Comet.TotalsBasic", - "members": [ - { - "constant": false, - "id": 308, - "mutability": "mutable", - "name": "baseSupplyIndex", - "nameLocation": "347:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "340:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 307, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "340:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 310, - "mutability": "mutable", - "name": "baseBorrowIndex", - "nameLocation": "375:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "368:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 309, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "368:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 312, - "mutability": "mutable", - "name": "trackingSupplyIndex", - "nameLocation": "403:19:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "396:26:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 311, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "396:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "trackingBorrowIndex", - "nameLocation": "435:19:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "428:26:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 313, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "428:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 316, - "mutability": "mutable", - "name": "totalSupplyBase", - "nameLocation": "468:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "460:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - "typeName": { - "id": 315, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 318, - "mutability": "mutable", - "name": "totalBorrowBase", - "nameLocation": "497:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "489:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - "typeName": { - "id": 317, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "489:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 320, - "mutability": "mutable", - "name": "lastAccrualTime", - "nameLocation": "525:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "518:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - }, - "typeName": { - "id": 319, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "518:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 322, - "mutability": "mutable", - "name": "pauseFlags", - "nameLocation": "552:10:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "546:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 321, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "546:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "name": "TotalsBasic", - "nameLocation": "322:11:1", - "scope": 598, - "visibility": "public" - }, - { - "id": 332, - "nodeType": "FunctionDefinition", - "src": "571:86:1", - "functionSelector": "7ac88ed1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "quoteCollateral", - "nameLocation": "580:15:1", - "parameters": { - "id": 328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "asset", - "nameLocation": "604:5:1", - "nodeType": "VariableDeclaration", - "scope": 332, - "src": "596:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "596:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 327, - "mutability": "mutable", - "name": "baseAmount", - "nameLocation": "616:10:1", - "nodeType": "VariableDeclaration", - "scope": 332, - "src": "611:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "611:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "595:32:1" - }, - "returnParameters": { - "id": 331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 330, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 332, - "src": "651:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 329, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "651:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "650:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 340, - "nodeType": "FunctionDefinition", - "src": "661:72:1", - "functionSelector": "c8c7fe6b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetInfo", - "nameLocation": "670:12:1", - "parameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "mutability": "mutable", - "name": "i", - "nameLocation": "689:1:1", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "683:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 333, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "683:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "682:9:1" - }, - "returnParameters": { - "id": 339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "715:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo" - }, - "typeName": { - "id": 337, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 336, - "name": "AssetInfo", - "nameLocations": [ - "715:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 306, - "src": "715:9:1" - }, - "referencedDeclaration": 306, - "src": "715:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", - "typeString": "struct Comet.AssetInfo" - } - }, - "visibility": "internal" - } - ], - "src": "714:18:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 348, - "nodeType": "FunctionDefinition", - "src": "737:87:1", - "functionSelector": "3b3bec2e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetInfoByAddress", - "nameLocation": "746:21:1", - "parameters": { - "id": 343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 342, - "mutability": "mutable", - "name": "asset", - "nameLocation": "776:5:1", - "nodeType": "VariableDeclaration", - "scope": 348, - "src": "768:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 341, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "768:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "767:15:1" - }, - "returnParameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 346, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 348, - "src": "806:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo" - }, - "typeName": { - "id": 345, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 344, - "name": "AssetInfo", - "nameLocations": [ - "806:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 306, - "src": "806:9:1" - }, - "referencedDeclaration": 306, - "src": "806:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", - "typeString": "struct Comet.AssetInfo" - } - }, - "visibility": "internal" - } - ], - "src": "805:18:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 355, - "nodeType": "FunctionDefinition", - "src": "828:75:1", - "functionSelector": "9ff567f8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getCollateralReserves", - "nameLocation": "837:21:1", - "parameters": { - "id": 351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 350, - "mutability": "mutable", - "name": "asset", - "nameLocation": "867:5:1", - "nodeType": "VariableDeclaration", - "scope": 355, - "src": "859:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 349, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "859:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "858:15:1" - }, - "returnParameters": { - "id": 354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 353, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 355, - "src": "897:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 352, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "897:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "896:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 360, - "nodeType": "FunctionDefinition", - "src": "907:51:1", - "functionSelector": "0902f1ac", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nameLocation": "916:11:1", - "parameters": { - "id": 356, - "nodeType": "ParameterList", - "parameters": [], - "src": "927:2:1" - }, - "returnParameters": { - "id": 359, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 358, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 360, - "src": "953:3:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 357, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "953:3:1", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "952:5:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 367, - "nodeType": "FunctionDefinition", - "src": "962:66:1", - "functionSelector": "41976e09", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPrice", - "nameLocation": "971:8:1", - "parameters": { - "id": 363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 362, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "988:9:1", - "nodeType": "VariableDeclaration", - "scope": 367, - "src": "980:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "980:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "979:19:1" - }, - "returnParameters": { - "id": 366, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 365, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 367, - "src": "1022:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1022:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1021:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 374, - "nodeType": "FunctionDefinition", - "src": "1032:78:1", - "functionSelector": "38aa813f", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isBorrowCollateralized", - "nameLocation": "1041:22:1", - "parameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 369, - "mutability": "mutable", - "name": "account", - "nameLocation": "1072:7:1", - "nodeType": "VariableDeclaration", - "scope": 374, - "src": "1064:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1064:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1063:17:1" - }, - "returnParameters": { - "id": 373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 372, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 374, - "src": "1104:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 371, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1104:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1103:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 381, - "nodeType": "FunctionDefinition", - "src": "1114:70:1", - "functionSelector": "042e02cf", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isLiquidatable", - "nameLocation": "1123:14:1", - "parameters": { - "id": 377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 376, - "mutability": "mutable", - "name": "account", - "nameLocation": "1146:7:1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "1138:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1138:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1137:17:1" - }, - "returnParameters": { - "id": 380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 379, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "1178:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 378, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1178:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1177:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 386, - "nodeType": "FunctionDefinition", - "src": "1188:55:1", - "functionSelector": "18160ddd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nameLocation": "1197:11:1", - "parameters": { - "id": 382, - "nodeType": "ParameterList", - "parameters": [], - "src": "1208:2:1" - }, - "returnParameters": { - "id": 385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "1234:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1233:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 391, - "nodeType": "FunctionDefinition", - "src": "1247:55:1", - "functionSelector": "8285ef40", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalBorrow", - "nameLocation": "1256:11:1", - "parameters": { - "id": 387, - "nodeType": "ParameterList", - "parameters": [], - "src": "1267:2:1" - }, - "returnParameters": { - "id": 390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 389, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 391, - "src": "1293:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1293:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1292:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 398, - "nodeType": "FunctionDefinition", - "src": "1306:66:1", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "1315:9:1", - "parameters": { - "id": 394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 393, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1333:5:1", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "1325:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 392, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1325:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1324:15:1" - }, - "returnParameters": { - "id": 397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 396, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "1363:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1363:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1362:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 405, - "nodeType": "FunctionDefinition", - "src": "1376:74:1", - "functionSelector": "374c49b4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowBalanceOf", - "nameLocation": "1385:15:1", - "parameters": { - "id": 401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 400, - "mutability": "mutable", - "name": "account", - "nameLocation": "1409:7:1", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "1401:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 399, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1401:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1400:17:1" - }, - "returnParameters": { - "id": 404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 403, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "1441:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 402, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1440:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 412, - "nodeType": "FunctionDefinition", - "src": "1454:72:1", - "functionSelector": "d955759d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getSupplyRate", - "nameLocation": "1463:13:1", - "parameters": { - "id": 408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 407, - "mutability": "mutable", - "name": "utilization", - "nameLocation": "1482:11:1", - "nodeType": "VariableDeclaration", - "scope": 412, - "src": "1477:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 406, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1476:18:1" - }, - "returnParameters": { - "id": 411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 410, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 412, - "src": "1518:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 409, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1518:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1517:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 419, - "nodeType": "FunctionDefinition", - "src": "1530:72:1", - "functionSelector": "9fa83b5a", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getBorrowRate", - "nameLocation": "1539:13:1", - "parameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 414, - "mutability": "mutable", - "name": "utilization", - "nameLocation": "1558:11:1", - "nodeType": "VariableDeclaration", - "scope": 419, - "src": "1553:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 413, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1553:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1552:18:1" - }, - "returnParameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 417, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 419, - "src": "1594:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 416, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1593:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 424, - "nodeType": "FunctionDefinition", - "src": "1606:55:1", - "functionSelector": "7eb71131", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getUtilization", - "nameLocation": "1615:14:1", - "parameters": { - "id": 420, - "nodeType": "ParameterList", - "parameters": [], - "src": "1629:2:1" - }, - "returnParameters": { - "id": 423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 422, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "1655:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 421, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1655:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1654:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 429, - "nodeType": "FunctionDefinition", - "src": "1665:52:1", - "functionSelector": "0c340a24", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "governor", - "nameLocation": "1674:8:1", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "1682:2:1" - }, - "returnParameters": { - "id": 428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 427, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 429, - "src": "1708:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 426, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1708:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1707:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 434, - "nodeType": "FunctionDefinition", - "src": "1721:57:1", - "functionSelector": "24a3d622", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "pauseGuardian", - "nameLocation": "1730:13:1", - "parameters": { - "id": 430, - "nodeType": "ParameterList", - "parameters": [], - "src": "1743:2:1" - }, - "returnParameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 432, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 434, - "src": "1769:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1769:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1768:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 439, - "nodeType": "FunctionDefinition", - "src": "1782:53:1", - "functionSelector": "c55dae63", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseToken", - "nameLocation": "1791:9:1", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [], - "src": "1800:2:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 439, - "src": "1826:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1825:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 444, - "nodeType": "FunctionDefinition", - "src": "1839:62:1", - "functionSelector": "e7dad6bd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTokenPriceFeed", - "nameLocation": "1848:18:1", - "parameters": { - "id": 440, - "nodeType": "ParameterList", - "parameters": [], - "src": "1866:2:1" - }, - "returnParameters": { - "id": 443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 442, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "1892:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1892:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1891:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 449, - "nodeType": "FunctionDefinition", - "src": "1905:61:1", - "functionSelector": "44ff241d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "extensionDelegate", - "nameLocation": "1914:17:1", - "parameters": { - "id": 445, - "nodeType": "ParameterList", - "parameters": [], - "src": "1931:2:1" - }, - "returnParameters": { - "id": 448, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 449, - "src": "1957:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 446, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1957:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1956:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 454, - "nodeType": "FunctionDefinition", - "src": "1970:51:1", - "functionSelector": "a5b4ff79", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyKink", - "nameLocation": "1979:10:1", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [], - "src": "1989:2:1" - }, - "returnParameters": { - "id": 453, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 452, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 454, - "src": "2015:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2015:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2014:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 459, - "nodeType": "FunctionDefinition", - "src": "2025:76:1", - "functionSelector": "5a94b8d1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyPerSecondInterestRateSlopeLow", - "nameLocation": "2034:35:1", - "parameters": { - "id": 455, - "nodeType": "ParameterList", - "parameters": [], - "src": "2069:2:1" - }, - "returnParameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2095:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2095:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2094:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 464, - "nodeType": "FunctionDefinition", - "src": "2105:77:1", - "functionSelector": "804de71f", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyPerSecondInterestRateSlopeHigh", - "nameLocation": "2114:36:1", - "parameters": { - "id": 460, - "nodeType": "ParameterList", - "parameters": [], - "src": "2150:2:1" - }, - "returnParameters": { - "id": 463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 462, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 464, - "src": "2176:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 461, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2176:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2175:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 469, - "nodeType": "FunctionDefinition", - "src": "2186:72:1", - "functionSelector": "94920cca", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyPerSecondInterestRateBase", - "nameLocation": "2195:31:1", - "parameters": { - "id": 465, - "nodeType": "ParameterList", - "parameters": [], - "src": "2226:2:1" - }, - "returnParameters": { - "id": 468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 467, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 469, - "src": "2252:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 466, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2252:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2251:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 474, - "nodeType": "FunctionDefinition", - "src": "2262:51:1", - "functionSelector": "9241a561", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowKink", - "nameLocation": "2271:10:1", - "parameters": { - "id": 470, - "nodeType": "ParameterList", - "parameters": [], - "src": "2281:2:1" - }, - "returnParameters": { - "id": 473, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 472, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2307:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 471, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2307:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2306:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 479, - "nodeType": "FunctionDefinition", - "src": "2317:76:1", - "functionSelector": "2d05670b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowPerSecondInterestRateSlopeLow", - "nameLocation": "2326:35:1", - "parameters": { - "id": 475, - "nodeType": "ParameterList", - "parameters": [], - "src": "2361:2:1" - }, - "returnParameters": { - "id": 478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 477, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "2387:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 476, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2387:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2386:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 484, - "nodeType": "FunctionDefinition", - "src": "2397:77:1", - "functionSelector": "2a48cf12", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowPerSecondInterestRateSlopeHigh", - "nameLocation": "2406:36:1", - "parameters": { - "id": 480, - "nodeType": "ParameterList", - "parameters": [], - "src": "2442:2:1" - }, - "returnParameters": { - "id": 483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 484, - "src": "2468:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2468:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2467:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 489, - "nodeType": "FunctionDefinition", - "src": "2478:72:1", - "functionSelector": "7914acc7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowPerSecondInterestRateBase", - "nameLocation": "2487:31:1", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [], - "src": "2518:2:1" - }, - "returnParameters": { - "id": 488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 487, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "2544:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 486, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2544:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2543:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 494, - "nodeType": "FunctionDefinition", - "src": "2554:62:1", - "functionSelector": "1f5954bd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "storeFrontPriceFactor", - "nameLocation": "2563:21:1", - "parameters": { - "id": 490, - "nodeType": "ParameterList", - "parameters": [], - "src": "2584:2:1" - }, - "returnParameters": { - "id": 493, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 492, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 494, - "src": "2610:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 491, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2610:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2609:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 499, - "nodeType": "FunctionDefinition", - "src": "2620:50:1", - "functionSelector": "44c1e5eb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseScale", - "nameLocation": "2629:9:1", - "parameters": { - "id": 495, - "nodeType": "ParameterList", - "parameters": [], - "src": "2638:2:1" - }, - "returnParameters": { - "id": 498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 497, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "2664:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 496, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2664:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2663:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 504, - "nodeType": "FunctionDefinition", - "src": "2674:59:1", - "functionSelector": "aba7f15e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "trackingIndexScale", - "nameLocation": "2683:18:1", - "parameters": { - "id": 500, - "nodeType": "ParameterList", - "parameters": [], - "src": "2701:2:1" - }, - "returnParameters": { - "id": 503, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 502, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "2727:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 501, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2727:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2726:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 509, - "nodeType": "FunctionDefinition", - "src": "2737:64:1", - "functionSelector": "189bb2f1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTrackingSupplySpeed", - "nameLocation": "2746:23:1", - "parameters": { - "id": 505, - "nodeType": "ParameterList", - "parameters": [], - "src": "2769:2:1" - }, - "returnParameters": { - "id": 508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 507, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 509, - "src": "2795:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 506, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2795:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2794:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 514, - "nodeType": "FunctionDefinition", - "src": "2805:64:1", - "functionSelector": "9ea99a5a", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTrackingBorrowSpeed", - "nameLocation": "2814:23:1", - "parameters": { - "id": 510, - "nodeType": "ParameterList", - "parameters": [], - "src": "2837:2:1" - }, - "returnParameters": { - "id": 513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 512, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 514, - "src": "2863:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 511, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2863:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2862:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 519, - "nodeType": "FunctionDefinition", - "src": "2873:58:1", - "functionSelector": "9364e18a", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseMinForRewards", - "nameLocation": "2882:17:1", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [], - "src": "2899:2:1" - }, - "returnParameters": { - "id": 518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 517, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "2925:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 516, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2925:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2924:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 524, - "nodeType": "FunctionDefinition", - "src": "2935:54:1", - "functionSelector": "300e6beb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseBorrowMin", - "nameLocation": "2944:13:1", - "parameters": { - "id": 520, - "nodeType": "ParameterList", - "parameters": [], - "src": "2957:2:1" - }, - "returnParameters": { - "id": 523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 522, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 524, - "src": "2983:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2983:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2982:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 529, - "nodeType": "FunctionDefinition", - "src": "2993:55:1", - "functionSelector": "32176c49", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "targetReserves", - "nameLocation": "3002:14:1", - "parameters": { - "id": 525, - "nodeType": "ParameterList", - "parameters": [], - "src": "3016:2:1" - }, - "returnParameters": { - "id": 528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 527, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "3042:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3042:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3041:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 534, - "nodeType": "FunctionDefinition", - "src": "3052:51:1", - "functionSelector": "a46fe83b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "numAssets", - "nameLocation": "3061:9:1", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [], - "src": "3070:2:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "3096:5:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 531, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3096:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3095:7:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 543, - "nodeType": "FunctionDefinition", - "src": "3107:93:1", - "functionSelector": "5c2549ee", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collateralBalanceOf", - "nameLocation": "3116:19:1", - "parameters": { - "id": 539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 536, - "mutability": "mutable", - "name": "account", - "nameLocation": "3144:7:1", - "nodeType": "VariableDeclaration", - "scope": 543, - "src": "3136:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 535, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3136:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 538, - "mutability": "mutable", - "name": "asset", - "nameLocation": "3161:5:1", - "nodeType": "VariableDeclaration", - "scope": 543, - "src": "3153:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3153:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3135:32:1" - }, - "returnParameters": { - "id": 542, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 541, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 543, - "src": "3191:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 540, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "3191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "src": "3190:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 550, - "nodeType": "FunctionDefinition", - "src": "3204:77:1", - "functionSelector": "ab9ba7f4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTrackingAccrued", - "nameLocation": "3213:19:1", - "parameters": { - "id": 546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 545, - "mutability": "mutable", - "name": "account", - "nameLocation": "3241:7:1", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "3233:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3233:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3232:17:1" - }, - "returnParameters": { - "id": 549, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "3273:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 547, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3273:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3272:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 555, - "nodeType": "FunctionDefinition", - "src": "3285:59:1", - "functionSelector": "a20ed596", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseAccrualScale", - "nameLocation": "3294:16:1", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [], - "src": "3310:2:1" - }, - "returnParameters": { - "id": 554, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 553, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 555, - "src": "3336:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 552, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3336:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3335:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 560, - "nodeType": "FunctionDefinition", - "src": "3348:57:1", - "functionSelector": "96e7a9c1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseIndexScale", - "nameLocation": "3357:14:1", - "parameters": { - "id": 556, - "nodeType": "ParameterList", - "parameters": [], - "src": "3371:2:1" - }, - "returnParameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 558, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 560, - "src": "3397:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 557, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3397:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3396:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 565, - "nodeType": "FunctionDefinition", - "src": "3409:54:1", - "functionSelector": "0f21d96b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factorScale", - "nameLocation": "3418:11:1", - "parameters": { - "id": 561, - "nodeType": "ParameterList", - "parameters": [], - "src": "3429:2:1" - }, - "returnParameters": { - "id": 564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 563, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 565, - "src": "3455:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 562, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3455:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3454:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 570, - "nodeType": "FunctionDefinition", - "src": "3467:53:1", - "functionSelector": "a0fbddaf", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "priceScale", - "nameLocation": "3476:10:1", - "parameters": { - "id": 566, - "nodeType": "ParameterList", - "parameters": [], - "src": "3486:2:1" - }, - "returnParameters": { - "id": 569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 568, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3512:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 567, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3512:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3511:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 575, - "nodeType": "FunctionDefinition", - "src": "3524:51:1", - "functionSelector": "94b2294b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "maxAssets", - "nameLocation": "3533:9:1", - "parameters": { - "id": 571, - "nodeType": "ParameterList", - "parameters": [], - "src": "3542:2:1" - }, - "returnParameters": { - "id": 574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 573, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "3568:5:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 572, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3568:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3567:7:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 581, - "nodeType": "FunctionDefinition", - "src": "3579:66:1", - "functionSelector": "b9f0baf7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalsBasic", - "nameLocation": "3588:11:1", - "parameters": { - "id": 576, - "nodeType": "ParameterList", - "parameters": [], - "src": "3599:2:1" - }, - "returnParameters": { - "id": 580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 579, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "3625:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic" - }, - "typeName": { - "id": 578, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 577, - "name": "TotalsBasic", - "nameLocations": [ - "3625:11:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 323, - "src": "3625:11:1" - }, - "referencedDeclaration": 323, - "src": "3625:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", - "typeString": "struct Comet.TotalsBasic" - } - }, - "visibility": "internal" - } - ], - "src": "3624:20:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 588, - "nodeType": "FunctionDefinition", - "src": "3649:70:1", - "functionSelector": "59e017bd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalsCollateral", - "nameLocation": "3658:16:1", - "parameters": { - "id": 584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 583, - "mutability": "mutable", - "name": "token", - "nameLocation": "3683:5:1", - "nodeType": "VariableDeclaration", - "scope": 588, - "src": "3675:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3675:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3674:15:1" - }, - "returnParameters": { - "id": 587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 586, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 588, - "src": "3713:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 585, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3713:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3712:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 597, - "nodeType": "FunctionDefinition", - "src": "3723:83:1", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "3732:9:1", - "parameters": { - "id": 593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 590, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3750:5:1", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "3742:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3742:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 592, - "mutability": "mutable", - "name": "spender", - "nameLocation": "3765:7:1", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "3757:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 591, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3757:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3741:32:1" - }, - "returnParameters": { - "id": 596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 595, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "3797:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3797:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3796:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comet", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 598 - ], - "name": "Comet", - "nameLocation": "75:5:1", - "scope": 1269, - "usedErrors": [] - }, - { - "id": 630, - "nodeType": "ContractDefinition", - "src": "3810:340:1", - "nodes": [ - { - "id": 607, - "nodeType": "FunctionDefinition", - "src": "3830:80:1", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "3839:9:1", - "parameters": { - "id": 603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 600, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3857:5:1", - "nodeType": "VariableDeclaration", - "scope": 607, - "src": "3849:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 599, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3849:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 602, - "mutability": "mutable", - "name": "spender", - "nameLocation": "3872:7:1", - "nodeType": "VariableDeclaration", - "scope": 607, - "src": "3864:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 601, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3864:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3848:32:1" - }, - "returnParameters": { - "id": 606, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 605, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 607, - "src": "3904:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 604, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3904:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3903:6:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 614, - "nodeType": "FunctionDefinition", - "src": "3914:63:1", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "3923:9:1", - "parameters": { - "id": 610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 609, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3941:5:1", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "3933:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3932:15:1" - }, - "returnParameters": { - "id": 613, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 612, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "3971:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 611, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3971:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3970:6:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 619, - "nodeType": "FunctionDefinition", - "src": "3981:49:1", - "functionSelector": "313ce567", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nameLocation": "3990:8:1", - "parameters": { - "id": 615, - "nodeType": "ParameterList", - "parameters": [], - "src": "3998:2:1" - }, - "returnParameters": { - "id": 618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 617, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "4024:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 616, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4024:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4023:6:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 624, - "nodeType": "FunctionDefinition", - "src": "4034:54:1", - "functionSelector": "06fdde03", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nameLocation": "4043:4:1", - "parameters": { - "id": 620, - "nodeType": "ParameterList", - "parameters": [], - "src": "4047:2:1" - }, - "returnParameters": { - "id": 623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 622, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "4073:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 621, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4073:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4072:15:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 629, - "nodeType": "FunctionDefinition", - "src": "4092:56:1", - "functionSelector": "95d89b41", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nameLocation": "4101:6:1", - "parameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [], - "src": "4107:2:1" - }, - "returnParameters": { - "id": 628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 627, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 629, - "src": "4133:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 626, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4133:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4132:15:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "ERC20", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 630 - ], - "name": "ERC20", - "nameLocation": "3820:5:1", - "scope": 1269, - "usedErrors": [] - }, - { - "id": 1268, - "nodeType": "ContractDefinition", - "src": "4152:7746:1", - "nodes": [ - { - "id": 639, - "nodeType": "VariableDeclaration", - "src": "4176:60:1", - "constant": true, - "mutability": "constant", - "name": "SECONDS_PER_YEAR", - "nameLocation": "4199:16:1", - "scope": 1268, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 631, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4176:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_rational_31536000_by_1", - "typeString": "int_const 31536000" - }, - "id": 638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "id": 636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3630", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4218:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3630", - "id": 633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4223:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "src": "4218:7:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3234", - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4228:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - "src": "4218:12:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "333635", - "id": 637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4233:3:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_365_by_1", - "typeString": "int_const 365" - }, - "value": "365" - }, - "src": "4218:18:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_31536000_by_1", - "typeString": "int_const 31536000" - } - }, - "visibility": "internal" - }, - { - "id": 656, - "nodeType": "StructDefinition", - "src": "4241:184:1", - "canonicalName": "CometQuery.BaseAsset", - "members": [ - { - "constant": false, - "id": 641, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "4272:9:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4264:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4264:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 643, - "mutability": "mutable", - "name": "balanceOfComet", - "nameLocation": "4292:14:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 642, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 645, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "4317:8:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4312:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 644, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4312:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 647, - "mutability": "mutable", - "name": "minBorrow", - "nameLocation": "4336:9:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 646, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4331:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 649, - "mutability": "mutable", - "name": "name", - "nameLocation": "4358:4:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4351:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 648, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4351:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 651, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "4376:9:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4368:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4368:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 653, - "mutability": "mutable", - "name": "price", - "nameLocation": "4396:5:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4391:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 652, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4391:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 655, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "4414:6:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4407:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 654, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "BaseAsset", - "nameLocation": "4248:9:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 679, - "nodeType": "StructDefinition", - "src": "4429:262:1", - "canonicalName": "CometQuery.BaseAssetWithAccountState", - "members": [ - { - "constant": false, - "id": 658, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "4476:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4468:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4468:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 660, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "4496:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4491:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4491:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 662, - "mutability": "mutable", - "name": "balance", - "nameLocation": "4516:7:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4511:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4511:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 664, - "mutability": "mutable", - "name": "balanceOfComet", - "nameLocation": "4534:14:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4529:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 663, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4529:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 666, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "4559:8:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4554:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4554:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 668, - "mutability": "mutable", - "name": "minBorrow", - "nameLocation": "4578:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4573:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 667, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4573:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 670, - "mutability": "mutable", - "name": "name", - "nameLocation": "4600:4:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4593:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 669, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4593:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 672, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "4618:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4610:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4610:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 674, - "mutability": "mutable", - "name": "price", - "nameLocation": "4638:5:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4633:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 673, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4633:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 676, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "4656:6:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4649:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 675, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 678, - "mutability": "mutable", - "name": "walletBalance", - "nameLocation": "4673:13:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4668:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4668:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "BaseAssetWithAccountState", - "nameLocation": "4436:25:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 702, - "nodeType": "StructDefinition", - "src": "4695:284:1", - "canonicalName": "CometQuery.CollateralAsset", - "members": [ - { - "constant": false, - "id": 681, - "mutability": "mutable", - "name": "collateralAsset", - "nameLocation": "4732:15:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4724:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4724:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 683, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "4758:16:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4753:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4753:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 685, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "4785:8:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4780:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 684, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4780:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 687, - "mutability": "mutable", - "name": "name", - "nameLocation": "4806:4:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4799:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 686, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4799:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 689, - "mutability": "mutable", - "name": "liquidateCollateralFactor", - "nameLocation": "4821:25:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4816:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 688, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4816:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 691, - "mutability": "mutable", - "name": "liquidationFactor", - "nameLocation": "4857:17:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4852:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 690, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4852:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 693, - "mutability": "mutable", - "name": "price", - "nameLocation": "4885:5:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4880:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 692, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4880:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 695, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "4904:9:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4896:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4896:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 697, - "mutability": "mutable", - "name": "supplyCap", - "nameLocation": "4924:9:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4919:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 696, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4919:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 699, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "4946:6:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4939:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 698, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4939:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 701, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "4963:11:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4958:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 700, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4958:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CollateralAsset", - "nameLocation": "4702:15:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 731, - "nodeType": "StructDefinition", - "src": "4983:362:1", - "canonicalName": "CometQuery.CollateralAssetWithAccountState", - "members": [ - { - "constant": false, - "id": 704, - "mutability": "mutable", - "name": "collateralAsset", - "nameLocation": "5036:15:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5028:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5028:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 706, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "5062:9:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5057:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 705, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5057:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 708, - "mutability": "mutable", - "name": "balance", - "nameLocation": "5082:7:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5077:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 707, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5077:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 710, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "5100:16:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5095:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 709, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5095:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 712, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "5127:8:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5122:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 711, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5122:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 714, - "mutability": "mutable", - "name": "name", - "nameLocation": "5148:4:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5141:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 713, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5141:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 716, - "mutability": "mutable", - "name": "liquidateCollateralFactor", - "nameLocation": "5163:25:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5158:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 715, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5158:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 718, - "mutability": "mutable", - "name": "liquidationFactor", - "nameLocation": "5199:17:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5194:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 717, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5194:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 720, - "mutability": "mutable", - "name": "price", - "nameLocation": "5227:5:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5222:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 719, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5222:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 722, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "5246:9:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5238:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5238:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 724, - "mutability": "mutable", - "name": "supplyCap", - "nameLocation": "5266:9:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5261:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 723, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5261:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 726, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "5288:6:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5281:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 725, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5281:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 728, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "5305:11:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5300:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5300:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 730, - "mutability": "mutable", - "name": "walletBalance", - "nameLocation": "5327:13:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5322:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 729, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5322:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CollateralAssetWithAccountState", - "nameLocation": "4990:31:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 759, - "nodeType": "StructDefinition", - "src": "5349:357:1", - "canonicalName": "CometQuery.CometState", - "members": [ - { - "constant": false, - "id": 734, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "5383:9:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5373:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", - "typeString": "struct CometQuery.BaseAsset" - }, - "typeName": { - "id": 733, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 732, - "name": "BaseAsset", - "nameLocations": [ - "5373:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 656, - "src": "5373:9:1" - }, - "referencedDeclaration": 656, - "src": "5373:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", - "typeString": "struct CometQuery.BaseAsset" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 736, - "mutability": "mutable", - "name": "baseMinForRewards", - "nameLocation": "5403:17:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5398:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 735, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5398:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 738, - "mutability": "mutable", - "name": "baseTrackingBorrowSpeed", - "nameLocation": "5431:23:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5426:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 737, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5426:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 740, - "mutability": "mutable", - "name": "baseTrackingSupplySpeed", - "nameLocation": "5465:23:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5460:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 739, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5460:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 742, - "mutability": "mutable", - "name": "borrowAPR", - "nameLocation": "5499:9:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5494:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 741, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5494:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 746, - "mutability": "mutable", - "name": "collateralAssets", - "nameLocation": "5532:16:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5514:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - }, - "typeName": { - "baseType": { - "id": 744, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 743, - "name": "CollateralAsset", - "nameLocations": [ - "5514:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "5514:15:1" - }, - "referencedDeclaration": 702, - "src": "5514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "id": 745, - "nodeType": "ArrayTypeName", - "src": "5514:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 748, - "mutability": "mutable", - "name": "earnAPR", - "nameLocation": "5559:7:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5554:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 747, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5554:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 750, - "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "5577:11:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5572:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 749, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5572:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "mutability": "mutable", - "name": "totalBorrowPrincipal", - "nameLocation": "5599:20:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5594:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5594:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 754, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "5630:11:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5625:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 753, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5625:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 756, - "mutability": "mutable", - "name": "totalSupplyPrincipal", - "nameLocation": "5652:20:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5647:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5647:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 758, - "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "5683:18:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5678:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 757, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5678:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CometState", - "nameLocation": "5356:10:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 789, - "nodeType": "StructDefinition", - "src": "5710:431:1", - "canonicalName": "CometQuery.CometStateWithAccountState", - "members": [ - { - "constant": false, - "id": 762, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "5776:9:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5750:35:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - }, - "typeName": { - "id": 761, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 760, - "name": "BaseAssetWithAccountState", - "nameLocations": [ - "5750:25:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 679, - "src": "5750:25:1" - }, - "referencedDeclaration": 679, - "src": "5750:25:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 764, - "mutability": "mutable", - "name": "baseMinForRewards", - "nameLocation": "5796:17:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5791:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 763, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5791:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 766, - "mutability": "mutable", - "name": "baseTrackingBorrowSpeed", - "nameLocation": "5824:23:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5819:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5819:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 768, - "mutability": "mutable", - "name": "baseTrackingSupplySpeed", - "nameLocation": "5858:23:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5853:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 767, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5853:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 770, - "mutability": "mutable", - "name": "borrowAPR", - "nameLocation": "5892:9:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5887:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 769, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5887:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "mutability": "mutable", - "name": "bulkerAllowance", - "nameLocation": "5912:15:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5907:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5907:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 776, - "mutability": "mutable", - "name": "collateralAssets", - "nameLocation": "5967:16:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5933:50:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - }, - "typeName": { - "baseType": { - "id": 774, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 773, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "5933:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "5933:31:1" - }, - "referencedDeclaration": 731, - "src": "5933:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "id": 775, - "nodeType": "ArrayTypeName", - "src": "5933:33:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "mutability": "mutable", - "name": "earnAPR", - "nameLocation": "5994:7:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5989:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 777, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5989:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 780, - "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "6012:11:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6007:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 779, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 782, - "mutability": "mutable", - "name": "totalBorrowPrincipal", - "nameLocation": "6034:20:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6029:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 781, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6029:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 784, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "6065:11:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6060:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 783, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6060:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 786, - "mutability": "mutable", - "name": "totalSupplyPrincipal", - "nameLocation": "6087:20:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6082:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 785, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6082:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 788, - "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "6118:18:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6113:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 787, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6113:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CometStateWithAccountState", - "nameLocation": "5717:26:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 979, - "nodeType": "FunctionDefinition", - "src": "6145:2007:1", - "body": { - "id": 978, - "nodeType": "Block", - "src": "6213:1939:1", - "statements": [ - { - "assignments": [ - 799 - ], - "declarations": [ - { - "constant": false, - "id": 799, - "mutability": "mutable", - "name": "numAssets", - "nameLocation": "6224:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6219:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6219:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 803, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 800, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6236:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6242:9:1", - "memberName": "numAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 534, - "src": "6236:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6236:17:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6219:34:1" - }, - { - "assignments": [ - 805 - ], - "declarations": [ - { - "constant": false, - "id": 805, - "mutability": "mutable", - "name": "baseToken", - "nameLocation": "6267:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6259:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6259:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 809, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 806, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6285:9:1", - "memberName": "baseToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 439, - "src": "6279:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6279:17:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6259:37:1" - }, - { - "assignments": [ - 811 - ], - "declarations": [ - { - "constant": false, - "id": 811, - "mutability": "mutable", - "name": "baseTokenPriceFeed", - "nameLocation": "6310:18:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6302:26:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6302:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 815, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 812, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6331:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6337:18:1", - "memberName": "baseTokenPriceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 444, - "src": "6331:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6331:26:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6302:55:1" - }, - { - "assignments": [ - 817 - ], - "declarations": [ - { - "constant": false, - "id": 817, - "mutability": "mutable", - "name": "borrowMin", - "nameLocation": "6368:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6363:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6363:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 821, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 818, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6380:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6386:13:1", - "memberName": "baseBorrowMin", - "nodeType": "MemberAccess", - "referencedDeclaration": 524, - "src": "6380:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6380:21:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6363:38:1" - }, - { - "assignments": [ - 823 - ], - "declarations": [ - { - "constant": false, - "id": 823, - "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "6412:18:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6407:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 822, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 827, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 824, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6433:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6439:18:1", - "memberName": "trackingIndexScale", - "nodeType": "MemberAccess", - "referencedDeclaration": 504, - "src": "6433:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6433:26:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6407:52:1" - }, - { - "assignments": [ - 829 - ], - "declarations": [ - { - "constant": false, - "id": 829, - "mutability": "mutable", - "name": "baseTrackingSupplySpeed", - "nameLocation": "6470:23:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6465:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6465:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 833, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 830, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6502:23:1", - "memberName": "baseTrackingSupplySpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 509, - "src": "6496:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6496:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6465:62:1" - }, - { - "assignments": [ - 835 - ], - "declarations": [ - { - "constant": false, - "id": 835, - "mutability": "mutable", - "name": "baseTrackingBorrowSpeed", - "nameLocation": "6538:23:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6533:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 834, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6533:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 839, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 836, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6564:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6570:23:1", - "memberName": "baseTrackingBorrowSpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 514, - "src": "6564:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6564:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6533:62:1" - }, - { - "assignments": [ - 841 - ], - "declarations": [ - { - "constant": false, - "id": 841, - "mutability": "mutable", - "name": "baseMinForRewards", - "nameLocation": "6606:17:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6601:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 840, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6601:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 845, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 842, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6632:17:1", - "memberName": "baseMinForRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 519, - "src": "6626:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6626:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6601:50:1" - }, - { - "assignments": [ - 847 - ], - "declarations": [ - { - "constant": false, - "id": 847, - "mutability": "mutable", - "name": "utilization", - "nameLocation": "6662:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6657:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 846, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6657:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 851, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 848, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6676:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6682:14:1", - "memberName": "getUtilization", - "nodeType": "MemberAccess", - "referencedDeclaration": 424, - "src": "6676:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6676:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6657:41:1" - }, - { - "assignments": [ - 853 - ], - "declarations": [ - { - "constant": false, - "id": 853, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "6709:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6704:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 852, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6704:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 857, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 854, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6723:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6729:11:1", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 386, - "src": "6723:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6723:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6704:38:1" - }, - { - "assignments": [ - 859 - ], - "declarations": [ - { - "constant": false, - "id": 859, - "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "6753:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6748:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 858, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6748:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 860, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6767:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6773:11:1", - "memberName": "totalBorrow", - "nodeType": "MemberAccess", - "referencedDeclaration": 391, - "src": "6767:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6767:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6748:38:1" - }, - { - "assignments": [ - 868 - ], - "declarations": [ - { - "constant": false, - "id": 868, - "mutability": "mutable", - "name": "totalsBasic", - "nameLocation": "6817:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6792:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic" - }, - "typeName": { - "id": 867, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 866, - "name": "Comet.TotalsBasic", - "nameLocations": [ - "6792:5:1", - "6798:11:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 323, - "src": "6792:17:1" - }, - "referencedDeclaration": 323, - "src": "6792:17:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", - "typeString": "struct Comet.TotalsBasic" - } - }, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 869, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6831:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6837:11:1", - "memberName": "totalsBasic", - "nodeType": "MemberAccess", - "referencedDeclaration": 581, - "src": "6831:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", - "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6831:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6792:58:1" - }, - { - "assignments": [ - 874 - ], - "declarations": [ - { - "constant": false, - "id": 874, - "mutability": "mutable", - "name": "borrowRatePerSecond", - "nameLocation": "6861:19:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6856:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 873, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6856:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 879, - "initialValue": { - "arguments": [ - { - "id": 877, - "name": "utilization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "6903:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 875, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6883:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6889:13:1", - "memberName": "getBorrowRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 419, - "src": "6883:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", - "typeString": "function (uint256) view external returns (uint64)" - } - }, - "id": 878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6883:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6856:59:1" - }, - { - "assignments": [ - 881 - ], - "declarations": [ - { - "constant": false, - "id": 881, - "mutability": "mutable", - "name": "supplyRatePerSecond", - "nameLocation": "6926:19:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6921:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 886, - "initialValue": { - "arguments": [ - { - "id": 884, - "name": "utilization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "6968:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 882, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6948:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6954:13:1", - "memberName": "getSupplyRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 412, - "src": "6948:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", - "typeString": "function (uint256) view external returns (uint64)" - } - }, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6948:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6921:59:1" - }, - { - "assignments": [ - 889 - ], - "declarations": [ - { - "constant": false, - "id": 889, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "7004:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6987:26:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset" - }, - "typeName": { - "id": 888, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 887, - "name": "BaseAsset", - "nameLocations": [ - "6987:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 656, - "src": "6987:9:1" - }, - "referencedDeclaration": 656, - "src": "6987:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", - "typeString": "struct CometQuery.BaseAsset" - } - }, - "visibility": "internal" - } - ], - "id": 923, - "initialValue": { - "arguments": [ - { - "id": 891, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7045:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 893, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7076:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 892, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7070:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7070:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7087:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 629, - "src": "7070:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7070:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 898, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7119:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 897, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7113:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7113:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7130:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 619, - "src": "7113:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7113:27:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 902, - "name": "borrowMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "7159:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 904, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7188:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7182:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7182:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7199:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "7182:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7182:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 908, - "name": "baseTokenPriceFeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "7224:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 911, - "name": "baseTokenPriceFeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "7272:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 909, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7263:8:1", - "memberName": "getPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "7257:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7257:34:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 919, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7342:7:1", - "typeDescriptions": {} - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7342:14:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "id": 914, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7321:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 913, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7315:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7315:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7332:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 614, - "src": "7315:26:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7315:42:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 890, - "name": "BaseAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "7016:9:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", - "typeString": "type(struct CometQuery.BaseAsset storage pointer)" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "7034:9:1", - "7062:6:1", - "7103:8:1", - "7148:9:1", - "7176:4:1", - "7213:9:1", - "7250:5:1", - "7299:14:1" - ], - "names": [ - "baseAsset", - "symbol", - "decimals", - "minBorrow", - "name", - "priceFeed", - "price", - "balanceOfComet" - ], - "nodeType": "FunctionCall", - "src": "7016:348:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6987:377:1" - }, - { - "assignments": [ - 928 - ], - "declarations": [ - { - "constant": false, - "id": 928, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "7396:6:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "7371:31:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - }, - "typeName": { - "baseType": { - "id": 926, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 925, - "name": "CollateralAsset", - "nameLocations": [ - "7371:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "7371:15:1" - }, - "referencedDeclaration": 702, - "src": "7371:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "id": 927, - "nodeType": "ArrayTypeName", - "src": "7371:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - } - }, - "visibility": "internal" - } - ], - "id": 935, - "initialValue": { - "arguments": [ - { - "id": 933, - "name": "numAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "7427:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "7405:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 930, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 929, - "name": "CollateralAsset", - "nameLocations": [ - "7409:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "7409:15:1" - }, - "referencedDeclaration": 702, - "src": "7409:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "id": 931, - "nodeType": "ArrayTypeName", - "src": "7409:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - } - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7405:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7371:66:1" - }, - { - "body": { - "id": 955, - "nodeType": "Block", - "src": "7481:51:1", - "statements": [ - { - "expression": { - "id": 953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 946, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7489:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 948, - "indexExpression": { - "id": 947, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7496:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7489:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 950, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7516:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 951, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7523:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 949, - "name": "collateralInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "7501:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", - "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" - } - }, - "id": 952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7501:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "src": "7489:36:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 954, - "nodeType": "ExpressionStatement", - "src": "7489:36:1" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 940, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7461:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 941, - "name": "numAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "7465:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7461:13:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 956, - "initializationExpression": { - "assignments": [ - 937 - ], - "declarations": [ - { - "constant": false, - "id": 937, - "mutability": "mutable", - "name": "i", - "nameLocation": "7454:1:1", - "nodeType": "VariableDeclaration", - "scope": 956, - "src": "7448:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 936, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7448:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 939, - "initialValue": { - "hexValue": "30", - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7458:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7448:11:1" - }, - "loopExpression": { - "expression": { - "id": 944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7476:3:1", - "subExpression": { - "id": 943, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 945, - "nodeType": "ExpressionStatement", - "src": "7476:3:1" - }, - "nodeType": "ForStatement", - "src": "7443:89:1" - }, - { - "expression": { - "arguments": [ - { - "id": 958, - "name": "baseAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "7583:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - { - "id": 959, - "name": "baseMinForRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "7621:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 960, - "name": "baseTrackingBorrowSpeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "7673:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 961, - "name": "baseTrackingSupplySpeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "7731:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 962, - "name": "borrowRatePerSecond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "7775:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 963, - "name": "SECONDS_PER_YEAR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "7797:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7775:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 965, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7841:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 966, - "name": "supplyRatePerSecond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "7866:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 967, - "name": "SECONDS_PER_YEAR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "7888:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7866:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 969, - "name": "totalBorrow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "7927:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 970, - "name": "totalsBasic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "7970:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic memory" - } - }, - "id": 971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7982:15:1", - "memberName": "totalBorrowBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 318, - "src": "7970:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - { - "id": 972, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 853, - "src": "8020:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 973, - "name": "totalsBasic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8063:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic memory" - } - }, - "id": 974, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8075:15:1", - "memberName": "totalSupplyBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 316, - "src": "8063:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - { - "id": 975, - "name": "trackingIndexScale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "8120:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 957, - "name": "CometState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "7551:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", - "typeString": "type(struct CometQuery.CometState storage pointer)" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "7572:9:1", - "7602:17:1", - "7648:23:1", - "7706:23:1", - "7764:9:1", - "7823:16:1", - "7857:7:1", - "7914:11:1", - "7948:20:1", - "8007:11:1", - "8041:20:1", - "8100:18:1" - ], - "names": [ - "baseAsset", - "baseMinForRewards", - "baseTrackingBorrowSpeed", - "baseTrackingSupplySpeed", - "borrowAPR", - "collateralAssets", - "earnAPR", - "totalBorrow", - "totalBorrowPrincipal", - "totalSupply", - "totalSupplyPrincipal", - "trackingIndexScale" - ], - "nodeType": "FunctionCall", - "src": "7551:596:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "functionReturnParameters": 797, - "id": 977, - "nodeType": "Return", - "src": "7538:609:1" - } - ] - }, - "functionSelector": "d4fc9fc6", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "query", - "nameLocation": "6154:5:1", - "parameters": { - "id": 793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 792, - "mutability": "mutable", - "name": "comet", - "nameLocation": "6166:5:1", - "nodeType": "VariableDeclaration", - "scope": 979, - "src": "6160:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 791, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 790, - "name": "Comet", - "nameLocations": [ - "6160:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "6160:5:1" - }, - "referencedDeclaration": 598, - "src": "6160:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - } - ], - "src": "6159:13:1" - }, - "returnParameters": { - "id": 797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 796, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 979, - "src": "6194:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState" - }, - "typeName": { - "id": 795, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 794, - "name": "CometState", - "nameLocations": [ - "6194:10:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 759, - "src": "6194:10:1" - }, - "referencedDeclaration": 759, - "src": "6194:10:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", - "typeString": "struct CometQuery.CometState" - } - }, - "visibility": "internal" - } - ], - "src": "6193:19:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 1138, - "nodeType": "FunctionDefinition", - "src": "8156:2025:1", - "body": { - "id": 1137, - "nodeType": "Block", - "src": "8316:1865:1", - "statements": [ - { - "assignments": [ - 994 - ], - "declarations": [ - { - "constant": false, - "id": 994, - "mutability": "mutable", - "name": "response", - "nameLocation": "8340:8:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8322:26:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState" - }, - "typeName": { - "id": 993, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 992, - "name": "CometState", - "nameLocations": [ - "8322:10:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 759, - "src": "8322:10:1" - }, - "referencedDeclaration": 759, - "src": "8322:10:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", - "typeString": "struct CometQuery.CometState" - } - }, - "visibility": "internal" - } - ], - "id": 998, - "initialValue": { - "arguments": [ - { - "id": 996, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8357:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 995, - "name": "query", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8351:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", - "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" - } - }, - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8351:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8322:41:1" - }, - { - "assignments": [ - 1000 - ], - "declarations": [ - { - "constant": false, - "id": 1000, - "mutability": "mutable", - "name": "baseAssetSupplyBalance", - "nameLocation": "8375:22:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8370:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 999, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8370:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1005, - "initialValue": { - "arguments": [ - { - "id": 1003, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8416:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1001, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8400:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8406:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 398, - "src": "8400:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8400:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8370:54:1" - }, - { - "assignments": [ - 1007 - ], - "declarations": [ - { - "constant": false, - "id": 1007, - "mutability": "mutable", - "name": "baseAssetBorrowBalance", - "nameLocation": "8435:22:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8430:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8430:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1012, - "initialValue": { - "arguments": [ - { - "id": 1010, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8482:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1008, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8460:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8466:15:1", - "memberName": "borrowBalanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 405, - "src": "8460:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8460:30:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8430:60:1" - }, - { - "assignments": [ - 1015 - ], - "declarations": [ - { - "constant": false, - "id": 1015, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "8530:9:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8497:42:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - }, - "typeName": { - "id": 1014, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1013, - "name": "BaseAssetWithAccountState", - "nameLocations": [ - "8497:25:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 679, - "src": "8497:25:1" - }, - "referencedDeclaration": 679, - "src": "8497:25:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - } - }, - "visibility": "internal" - } - ], - "id": 1065, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1017, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8587:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1018, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8596:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8587:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8606:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 641, - "src": "8587:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1026, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8680:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "id": 1029, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8697:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8689:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8689:7:1", - "typeDescriptions": {} - } - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8689:14:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1021, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8640:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1022, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8649:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8640:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1023, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8659:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 641, - "src": "8640:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1020, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "8634:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8634:35:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8670:9:1", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 607, - "src": "8634:45:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8634:70:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1032, - "name": "baseAssetSupplyBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "8721:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 1033, - "name": "baseAssetBorrowBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "8746:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8721:47:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1035, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8784:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1036, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8793:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8784:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8803:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 655, - "src": "8784:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "expression": { - "id": 1038, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8827:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8836:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8827:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1040, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8846:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "8827:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1041, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8873:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1042, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8882:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8873:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1043, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8892:9:1", - "memberName": "minBorrow", - "nodeType": "MemberAccess", - "referencedDeclaration": 647, - "src": "8873:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1044, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8915:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8924:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8915:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1046, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8934:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 649, - "src": "8915:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "expression": { - "id": 1047, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8957:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8966:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8957:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1049, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8976:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 651, - "src": "8957:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "expression": { - "id": 1050, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9000:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9009:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "9000:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1052, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9019:5:1", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 653, - "src": "9000:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1053, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9048:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9057:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "9048:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1055, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9067:14:1", - "memberName": "balanceOfComet", - "nodeType": "MemberAccess", - "referencedDeclaration": 643, - "src": "9048:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1062, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1057, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9110:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9119:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "9110:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9129:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 641, - "src": "9110:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1056, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "9104:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9104:35:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9140:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 614, - "src": "9104:45:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9104:54:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1016, - "name": "BaseAssetWithAccountState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "8542:25:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", - "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "8576:9:1", - "8623:9:1", - "8712:7:1", - "8776:6:1", - "8817:8:1", - "8862:9:1", - "8909:4:1", - "8946:9:1", - "8993:5:1", - "9032:14:1", - "9089:13:1" - ], - "names": [ - "baseAsset", - "allowance", - "balance", - "symbol", - "decimals", - "minBorrow", - "name", - "priceFeed", - "price", - "balanceOfComet", - "walletBalance" - ], - "nodeType": "FunctionCall", - "src": "8542:623:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8497:668:1" - }, - { - "assignments": [ - 1070 - ], - "declarations": [ - { - "constant": false, - "id": 1070, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "9213:6:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "9172:47:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - }, - "typeName": { - "baseType": { - "id": 1068, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1067, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "9172:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "9172:31:1" - }, - "referencedDeclaration": 731, - "src": "9172:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "id": 1069, - "nodeType": "ArrayTypeName", - "src": "9172:33:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - } - }, - "visibility": "internal" - } - ], - "id": 1079, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1075, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9267:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9276:16:1", - "memberName": "collateralAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 746, - "src": "9267:25:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9293:6:1", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9267:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9222:37:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 1072, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1071, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "9226:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "9226:31:1" - }, - "referencedDeclaration": 731, - "src": "9226:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "id": 1073, - "nodeType": "ArrayTypeName", - "src": "9226:33:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - } - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9222:83:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9172:133:1" - }, - { - "body": { - "id": 1105, - "nodeType": "Block", - "src": "9372:98:1", - "statements": [ - { - "expression": { - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1092, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "9380:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - } - }, - "id": 1094, - "indexExpression": { - "id": 1093, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9387:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9380:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1096, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "9418:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "baseExpression": { - "expression": { - "id": 1097, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9425:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1098, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9434:16:1", - "memberName": "collateralAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 746, - "src": "9425:25:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 1100, - "indexExpression": { - "id": 1099, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9451:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9425:28:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - { - "id": 1101, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9455:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1095, - "name": "collateralInfoWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "9392:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", - "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9392:71:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "src": "9380:83:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "id": 1104, - "nodeType": "ExpressionStatement", - "src": "9380:83:1" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1084, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9329:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "expression": { - "id": 1085, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9333:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1086, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9342:16:1", - "memberName": "collateralAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 746, - "src": "9333:25:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9359:6:1", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9333:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9329:36:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1106, - "initializationExpression": { - "assignments": [ - 1081 - ], - "declarations": [ - { - "constant": false, - "id": 1081, - "mutability": "mutable", - "name": "i", - "nameLocation": "9322:1:1", - "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "9316:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1080, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "9316:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 1083, - "initialValue": { - "hexValue": "30", - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9326:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9316:11:1" - }, - "loopExpression": { - "expression": { - "id": 1090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9367:3:1", - "subExpression": { - "id": 1089, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9367:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 1091, - "nodeType": "ExpressionStatement", - "src": "9367:3:1" - }, - "nodeType": "ForStatement", - "src": "9311:159:1" - }, - { - "expression": { - "arguments": [ - { - "id": 1108, - "name": "baseAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "9537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState memory" - } - }, - { - "expression": { - "id": 1109, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9575:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9584:17:1", - "memberName": "baseMinForRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 736, - "src": "9575:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1111, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9636:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1112, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9645:23:1", - "memberName": "baseTrackingBorrowSpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 738, - "src": "9636:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1113, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9703:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1114, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9712:23:1", - "memberName": "baseTrackingSupplySpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 740, - "src": "9703:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1115, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9756:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1116, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9765:9:1", - "memberName": "borrowAPR", - "nodeType": "MemberAccess", - "referencedDeclaration": 742, - "src": "9756:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1119, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9817:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1120, - "name": "bulker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "9826:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1117, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "9801:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9807:9:1", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "9801:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9801:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1122, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "9861:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - } - }, - { - "expression": { - "id": 1123, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9886:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1124, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9895:7:1", - "memberName": "earnAPR", - "nodeType": "MemberAccess", - "referencedDeclaration": 748, - "src": "9886:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1125, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9925:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9934:11:1", - "memberName": "totalBorrow", - "nodeType": "MemberAccess", - "referencedDeclaration": 750, - "src": "9925:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1127, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9977:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1128, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9986:20:1", - "memberName": "totalBorrowPrincipal", - "nodeType": "MemberAccess", - "referencedDeclaration": 752, - "src": "9977:29:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1129, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10029:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10038:11:1", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 754, - "src": "10029:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1131, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10081:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10090:20:1", - "memberName": "totalSupplyPrincipal", - "nodeType": "MemberAccess", - "referencedDeclaration": 756, - "src": "10081:29:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1133, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10140:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10149:18:1", - "memberName": "trackingIndexScale", - "nodeType": "MemberAccess", - "referencedDeclaration": 758, - "src": "10140:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1107, - "name": "CometStateWithAccountState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "9489:26:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$789_storage_ptr_$", - "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "9526:9:1", - "9556:17:1", - "9611:23:1", - "9678:23:1", - "9745:9:1", - "9784:15:1", - "9843:16:1", - "9877:7:1", - "9912:11:1", - "9955:20:1", - "10016:11:1", - "10059:20:1", - "10120:18:1" - ], - "names": [ - "baseAsset", - "baseMinForRewards", - "baseTrackingBorrowSpeed", - "baseTrackingSupplySpeed", - "borrowAPR", - "bulkerAllowance", - "collateralAssets", - "earnAPR", - "totalBorrow", - "totalBorrowPrincipal", - "totalSupply", - "totalSupplyPrincipal", - "trackingIndexScale" - ], - "nodeType": "FunctionCall", - "src": "9489:687:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - "functionReturnParameters": 991, - "id": 1136, - "nodeType": "Return", - "src": "9476:700:1" - } - ] - }, - "functionSelector": "5346cc19", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "queryWithAccount", - "nameLocation": "8165:16:1", - "parameters": { - "id": 987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 982, - "mutability": "mutable", - "name": "comet", - "nameLocation": "8193:5:1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8187:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 981, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 980, - "name": "Comet", - "nameLocations": [ - "8187:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "8187:5:1" - }, - "referencedDeclaration": 598, - "src": "8187:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 984, - "mutability": "mutable", - "name": "account", - "nameLocation": "8220:7:1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8204:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8204:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 986, - "mutability": "mutable", - "name": "bulker", - "nameLocation": "8249:6:1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8233:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8233:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "8181:78:1" - }, - "returnParameters": { - "id": 991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 990, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8281:33:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 989, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 988, - "name": "CometStateWithAccountState", - "nameLocations": [ - "8281:26:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "8281:26:1" - }, - "referencedDeclaration": 789, - "src": "8281:26:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - } - ], - "src": "8280:35:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 1203, - "nodeType": "FunctionDefinition", - "src": "10185:782:1", - "body": { - "id": 1202, - "nodeType": "Block", - "src": "10280:687:1", - "statements": [ - { - "assignments": [ - 1153 - ], - "declarations": [ - { - "constant": false, - "id": 1153, - "mutability": "mutable", - "name": "assetInfo", - "nameLocation": "10309:9:1", - "nodeType": "VariableDeclaration", - "scope": 1202, - "src": "10286:32:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo" - }, - "typeName": { - "id": 1152, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1151, - "name": "Comet.AssetInfo", - "nameLocations": [ - "10286:5:1", - "10292:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 306, - "src": "10286:15:1" - }, - "referencedDeclaration": 306, - "src": "10286:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", - "typeString": "struct Comet.AssetInfo" - } - }, - "visibility": "internal" - } - ], - "id": 1158, - "initialValue": { - "arguments": [ - { - "id": 1156, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "10340:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "id": 1154, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10321:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10327:12:1", - "memberName": "getAssetInfo", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "10321:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", - "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" - } - }, - "id": 1157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10321:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10286:60:1" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 1160, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10409:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10419:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10409:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1162, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10452:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10462:22:1", - "memberName": "borrowCollateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 299, - "src": "10452:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "expression": { - "id": 1165, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10510:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1166, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10520:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10510:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1164, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10504:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10504:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10527:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 619, - "src": "10504:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10504:33:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1170, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10574:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10584:25:1", - "memberName": "liquidateCollateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 301, - "src": "10574:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "expression": { - "id": 1172, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10638:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10648:17:1", - "memberName": "liquidationFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 303, - "src": "10638:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "expression": { - "id": 1175, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10687:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1176, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10697:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10687:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1174, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10681:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10681:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10704:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "10681:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 1179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10681:29:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1182, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10742:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1183, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10752:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10742:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10727:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10733:8:1", - "memberName": "getPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "10727:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10727:35:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1185, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10783:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10793:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10783:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1187, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10823:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10833:9:1", - "memberName": "supplyCap", - "nodeType": "MemberAccess", - "referencedDeclaration": 305, - "src": "10823:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "expression": { - "id": 1190, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10866:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10876:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10866:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1189, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10860:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10860:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10883:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 629, - "src": "10860:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10860:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1197, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10937:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10947:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10937:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1195, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10914:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10920:16:1", - "memberName": "totalsCollateral", - "nodeType": "MemberAccess", - "referencedDeclaration": 588, - "src": "10914:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10914:39:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1159, - "name": "CollateralAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 702, - "src": "10366:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", - "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "10392:15:1", - "10434:16:1", - "10494:8:1", - "10547:25:1", - "10619:17:1", - "10675:4:1", - "10720:5:1", - "10772:9:1", - "10812:9:1", - "10852:6:1", - "10901:11:1" - ], - "names": [ - "collateralAsset", - "collateralFactor", - "decimals", - "liquidateCollateralFactor", - "liquidationFactor", - "name", - "price", - "priceFeed", - "supplyCap", - "symbol", - "totalSupply" - ], - "nodeType": "FunctionCall", - "src": "10366:596:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "functionReturnParameters": 1148, - "id": 1201, - "nodeType": "Return", - "src": "10353:609:1" - } - ] - }, - "functionSelector": "cbe293fa", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "collateralInfo", - "nameLocation": "10194:14:1", - "parameters": { - "id": 1144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "mutability": "mutable", - "name": "comet", - "nameLocation": "10215:5:1", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10209:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1139, - "name": "Comet", - "nameLocations": [ - "10209:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "10209:5:1" - }, - "referencedDeclaration": 598, - "src": "10209:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1143, - "mutability": "mutable", - "name": "index", - "nameLocation": "10228:5:1", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10222:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1142, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "10222:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "10208:26:1" - }, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1147, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10256:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset" - }, - "typeName": { - "id": 1146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1145, - "name": "CollateralAsset", - "nameLocations": [ - "10256:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "10256:15:1" - }, - "referencedDeclaration": 702, - "src": "10256:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "visibility": "internal" - } - ], - "src": "10255:24:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 1267, - "nodeType": "FunctionDefinition", - "src": "10971:925:1", - "body": { - "id": 1266, - "nodeType": "Block", - "src": "11151:745:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 1218, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11229:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1219, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11235:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11229:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1225, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11310:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "id": 1228, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "11327:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 1227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1226, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11319:7:1", - "typeDescriptions": {} - } - }, - "id": 1229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11319:14:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 1221, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1222, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11283:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11277:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1220, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "11271:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11271:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11300:9:1", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 607, - "src": "11271:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11271:63:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1233, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "expression": { - "id": 1234, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11388:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1235, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11394:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11388:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1231, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "11353:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11359:19:1", - "memberName": "collateralBalanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 543, - "src": "11353:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", - "typeString": "function (address,address) view external returns (uint128)" - } - }, - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11353:57:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - { - "expression": { - "id": 1237, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11438:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1238, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11444:16:1", - "memberName": "collateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 683, - "src": "11438:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1239, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11480:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1240, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11486:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 685, - "src": "11480:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1241, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11531:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11537:25:1", - "memberName": "liquidateCollateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 689, - "src": "11531:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1243, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11591:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1244, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11597:17:1", - "memberName": "liquidationFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 691, - "src": "11591:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1245, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11630:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11636:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 687, - "src": "11630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "id": 1247, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11657:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11663:5:1", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 693, - "src": "11657:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1249, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11689:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11695:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "11689:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1251, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11725:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1252, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11731:9:1", - "memberName": "supplyCap", - "nodeType": "MemberAccess", - "referencedDeclaration": 697, - "src": "11725:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1253, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11758:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11764:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 699, - "src": "11758:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "id": 1255, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11793:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11799:11:1", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 701, - "src": "11793:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1262, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11874:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 1258, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11841:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11847:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11841:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1257, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "11835:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11835:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11864:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 614, - "src": "11835:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11835:47:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1217, - "name": "CollateralAssetWithAccountState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "11170:31:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", - "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" - } - }, - "id": 1264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "11212:15:1", - "11260:9:1", - "11344:7:1", - "11420:16:1", - "11470:8:1", - "11504:25:1", - "11572:17:1", - "11624:4:1", - "11650:5:1", - "11678:9:1", - "11714:9:1", - "11750:6:1", - "11780:11:1", - "11820:13:1" - ], - "names": [ - "collateralAsset", - "allowance", - "balance", - "collateralFactor", - "decimals", - "liquidateCollateralFactor", - "liquidationFactor", - "name", - "price", - "priceFeed", - "supplyCap", - "symbol", - "totalSupply", - "walletBalance" - ], - "nodeType": "FunctionCall", - "src": "11170:721:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "functionReturnParameters": 1216, - "id": 1265, - "nodeType": "Return", - "src": "11157:734:1" - } - ] - }, - "functionSelector": "c2815c0b", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "collateralInfoWithAccount", - "nameLocation": "10980:25:1", - "parameters": { - "id": 1212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1206, - "mutability": "mutable", - "name": "comet", - "nameLocation": "11017:5:1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11011:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1205, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1204, - "name": "Comet", - "nameLocations": [ - "11011:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "11011:5:1" - }, - "referencedDeclaration": 598, - "src": "11011:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1209, - "mutability": "mutable", - "name": "asset", - "nameLocation": "11051:5:1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11028:28:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset" - }, - "typeName": { - "id": 1208, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1207, - "name": "CollateralAsset", - "nameLocations": [ - "11028:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "11028:15:1" - }, - "referencedDeclaration": 702, - "src": "11028:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1211, - "mutability": "mutable", - "name": "account", - "nameLocation": "11078:7:1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11062:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1210, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11062:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "11005:84:1" - }, - "returnParameters": { - "id": 1216, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1215, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11111:38:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - }, - "typeName": { - "id": 1214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1213, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "11111:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "11111:31:1" - }, - "referencedDeclaration": 731, - "src": "11111:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "visibility": "internal" - } - ], - "src": "11110:40:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CometQuery", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 1268 - ], - "name": "CometQuery", - "nameLocation": "4161:10:1", - "scope": 1269, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 1 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CometQuery.sol/ERC20.json b/web/helpers/Sleuth/out/CometQuery.sol/ERC20.json deleted file mode 100644 index 44ae29b..0000000 --- a/web/helpers/Sleuth/out/CometQuery.sol/ERC20.json +++ /dev/null @@ -1,13477 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "balanceOf(address)": "70a08231", - "decimals()": "313ce567", - "name()": "06fdde03", - "symbol()": "95d89b41" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"ERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "decimals", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/CometQuery.sol": "ERC20" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/CometQuery.sol", - "id": 1269, - "exportedSymbols": { - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "ERC20": [ - 630 - ] - }, - "nodeType": "SourceUnit", - "src": "39:11860:1", - "nodes": [ - { - "id": 289, - "nodeType": "PragmaDirective", - "src": "39:24:1", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 598, - "nodeType": "ContractDefinition", - "src": "65:3743:1", - "nodes": [ - { - "id": 306, - "nodeType": "StructDefinition", - "src": "85:226:1", - "canonicalName": "Comet.AssetInfo", - "members": [ - { - "constant": false, - "id": 291, - "mutability": "mutable", - "name": "offset", - "nameLocation": "114:6:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "108:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 290, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "108:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "asset", - "nameLocation": "134:5:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "126:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 292, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "126:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 295, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "153:9:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "145:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "145:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 297, - "mutability": "mutable", - "name": "scale", - "nameLocation": "175:5:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "168:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 296, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "168:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 299, - "mutability": "mutable", - "name": "borrowCollateralFactor", - "nameLocation": "193:22:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "186:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 298, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "186:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 301, - "mutability": "mutable", - "name": "liquidateCollateralFactor", - "nameLocation": "228:25:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "221:32:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 300, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "221:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 303, - "mutability": "mutable", - "name": "liquidationFactor", - "nameLocation": "266:17:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "259:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 302, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 305, - "mutability": "mutable", - "name": "supplyCap", - "nameLocation": "297:9:1", - "nodeType": "VariableDeclaration", - "scope": 306, - "src": "289:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 304, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "289:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "name": "AssetInfo", - "nameLocation": "92:9:1", - "scope": 598, - "visibility": "public" - }, - { - "id": 323, - "nodeType": "StructDefinition", - "src": "315:252:1", - "canonicalName": "Comet.TotalsBasic", - "members": [ - { - "constant": false, - "id": 308, - "mutability": "mutable", - "name": "baseSupplyIndex", - "nameLocation": "347:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "340:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 307, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "340:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 310, - "mutability": "mutable", - "name": "baseBorrowIndex", - "nameLocation": "375:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "368:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 309, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "368:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 312, - "mutability": "mutable", - "name": "trackingSupplyIndex", - "nameLocation": "403:19:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "396:26:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 311, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "396:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "trackingBorrowIndex", - "nameLocation": "435:19:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "428:26:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 313, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "428:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 316, - "mutability": "mutable", - "name": "totalSupplyBase", - "nameLocation": "468:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "460:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - "typeName": { - "id": 315, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 318, - "mutability": "mutable", - "name": "totalBorrowBase", - "nameLocation": "497:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "489:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - "typeName": { - "id": 317, - "name": "uint104", - "nodeType": "ElementaryTypeName", - "src": "489:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 320, - "mutability": "mutable", - "name": "lastAccrualTime", - "nameLocation": "525:15:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "518:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - }, - "typeName": { - "id": 319, - "name": "uint40", - "nodeType": "ElementaryTypeName", - "src": "518:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint40", - "typeString": "uint40" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 322, - "mutability": "mutable", - "name": "pauseFlags", - "nameLocation": "552:10:1", - "nodeType": "VariableDeclaration", - "scope": 323, - "src": "546:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 321, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "546:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "name": "TotalsBasic", - "nameLocation": "322:11:1", - "scope": 598, - "visibility": "public" - }, - { - "id": 332, - "nodeType": "FunctionDefinition", - "src": "571:86:1", - "functionSelector": "7ac88ed1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "quoteCollateral", - "nameLocation": "580:15:1", - "parameters": { - "id": 328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "asset", - "nameLocation": "604:5:1", - "nodeType": "VariableDeclaration", - "scope": 332, - "src": "596:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "596:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 327, - "mutability": "mutable", - "name": "baseAmount", - "nameLocation": "616:10:1", - "nodeType": "VariableDeclaration", - "scope": 332, - "src": "611:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "611:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "595:32:1" - }, - "returnParameters": { - "id": 331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 330, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 332, - "src": "651:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 329, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "651:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "650:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 340, - "nodeType": "FunctionDefinition", - "src": "661:72:1", - "functionSelector": "c8c7fe6b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetInfo", - "nameLocation": "670:12:1", - "parameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "mutability": "mutable", - "name": "i", - "nameLocation": "689:1:1", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "683:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 333, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "683:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "682:9:1" - }, - "returnParameters": { - "id": 339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "715:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo" - }, - "typeName": { - "id": 337, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 336, - "name": "AssetInfo", - "nameLocations": [ - "715:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 306, - "src": "715:9:1" - }, - "referencedDeclaration": 306, - "src": "715:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", - "typeString": "struct Comet.AssetInfo" - } - }, - "visibility": "internal" - } - ], - "src": "714:18:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 348, - "nodeType": "FunctionDefinition", - "src": "737:87:1", - "functionSelector": "3b3bec2e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetInfoByAddress", - "nameLocation": "746:21:1", - "parameters": { - "id": 343, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 342, - "mutability": "mutable", - "name": "asset", - "nameLocation": "776:5:1", - "nodeType": "VariableDeclaration", - "scope": 348, - "src": "768:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 341, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "768:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "767:15:1" - }, - "returnParameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 346, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 348, - "src": "806:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo" - }, - "typeName": { - "id": 345, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 344, - "name": "AssetInfo", - "nameLocations": [ - "806:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 306, - "src": "806:9:1" - }, - "referencedDeclaration": 306, - "src": "806:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", - "typeString": "struct Comet.AssetInfo" - } - }, - "visibility": "internal" - } - ], - "src": "805:18:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 355, - "nodeType": "FunctionDefinition", - "src": "828:75:1", - "functionSelector": "9ff567f8", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getCollateralReserves", - "nameLocation": "837:21:1", - "parameters": { - "id": 351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 350, - "mutability": "mutable", - "name": "asset", - "nameLocation": "867:5:1", - "nodeType": "VariableDeclaration", - "scope": 355, - "src": "859:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 349, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "859:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "858:15:1" - }, - "returnParameters": { - "id": 354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 353, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 355, - "src": "897:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 352, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "897:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "896:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 360, - "nodeType": "FunctionDefinition", - "src": "907:51:1", - "functionSelector": "0902f1ac", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getReserves", - "nameLocation": "916:11:1", - "parameters": { - "id": 356, - "nodeType": "ParameterList", - "parameters": [], - "src": "927:2:1" - }, - "returnParameters": { - "id": 359, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 358, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 360, - "src": "953:3:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 357, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "953:3:1", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "952:5:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 367, - "nodeType": "FunctionDefinition", - "src": "962:66:1", - "functionSelector": "41976e09", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPrice", - "nameLocation": "971:8:1", - "parameters": { - "id": 363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 362, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "988:9:1", - "nodeType": "VariableDeclaration", - "scope": 367, - "src": "980:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "980:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "979:19:1" - }, - "returnParameters": { - "id": 366, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 365, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 367, - "src": "1022:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1022:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1021:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 374, - "nodeType": "FunctionDefinition", - "src": "1032:78:1", - "functionSelector": "38aa813f", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isBorrowCollateralized", - "nameLocation": "1041:22:1", - "parameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 369, - "mutability": "mutable", - "name": "account", - "nameLocation": "1072:7:1", - "nodeType": "VariableDeclaration", - "scope": 374, - "src": "1064:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1064:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1063:17:1" - }, - "returnParameters": { - "id": 373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 372, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 374, - "src": "1104:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 371, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1104:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1103:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 381, - "nodeType": "FunctionDefinition", - "src": "1114:70:1", - "functionSelector": "042e02cf", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isLiquidatable", - "nameLocation": "1123:14:1", - "parameters": { - "id": 377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 376, - "mutability": "mutable", - "name": "account", - "nameLocation": "1146:7:1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "1138:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1138:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1137:17:1" - }, - "returnParameters": { - "id": 380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 379, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 381, - "src": "1178:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 378, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1178:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1177:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 386, - "nodeType": "FunctionDefinition", - "src": "1188:55:1", - "functionSelector": "18160ddd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nameLocation": "1197:11:1", - "parameters": { - "id": 382, - "nodeType": "ParameterList", - "parameters": [], - "src": "1208:2:1" - }, - "returnParameters": { - "id": 385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "1234:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1233:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 391, - "nodeType": "FunctionDefinition", - "src": "1247:55:1", - "functionSelector": "8285ef40", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalBorrow", - "nameLocation": "1256:11:1", - "parameters": { - "id": 387, - "nodeType": "ParameterList", - "parameters": [], - "src": "1267:2:1" - }, - "returnParameters": { - "id": 390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 389, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 391, - "src": "1293:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1293:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1292:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 398, - "nodeType": "FunctionDefinition", - "src": "1306:66:1", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "1315:9:1", - "parameters": { - "id": 394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 393, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1333:5:1", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "1325:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 392, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1325:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1324:15:1" - }, - "returnParameters": { - "id": 397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 396, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "1363:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1363:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1362:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 405, - "nodeType": "FunctionDefinition", - "src": "1376:74:1", - "functionSelector": "374c49b4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowBalanceOf", - "nameLocation": "1385:15:1", - "parameters": { - "id": 401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 400, - "mutability": "mutable", - "name": "account", - "nameLocation": "1409:7:1", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "1401:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 399, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1401:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1400:17:1" - }, - "returnParameters": { - "id": 404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 403, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "1441:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 402, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1440:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 412, - "nodeType": "FunctionDefinition", - "src": "1454:72:1", - "functionSelector": "d955759d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getSupplyRate", - "nameLocation": "1463:13:1", - "parameters": { - "id": 408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 407, - "mutability": "mutable", - "name": "utilization", - "nameLocation": "1482:11:1", - "nodeType": "VariableDeclaration", - "scope": 412, - "src": "1477:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 406, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1477:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1476:18:1" - }, - "returnParameters": { - "id": 411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 410, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 412, - "src": "1518:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 409, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1518:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1517:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 419, - "nodeType": "FunctionDefinition", - "src": "1530:72:1", - "functionSelector": "9fa83b5a", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getBorrowRate", - "nameLocation": "1539:13:1", - "parameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 414, - "mutability": "mutable", - "name": "utilization", - "nameLocation": "1558:11:1", - "nodeType": "VariableDeclaration", - "scope": 419, - "src": "1553:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 413, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1553:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1552:18:1" - }, - "returnParameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 417, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 419, - "src": "1594:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 416, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1593:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 424, - "nodeType": "FunctionDefinition", - "src": "1606:55:1", - "functionSelector": "7eb71131", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getUtilization", - "nameLocation": "1615:14:1", - "parameters": { - "id": 420, - "nodeType": "ParameterList", - "parameters": [], - "src": "1629:2:1" - }, - "returnParameters": { - "id": 423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 422, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "1655:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 421, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1655:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1654:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 429, - "nodeType": "FunctionDefinition", - "src": "1665:52:1", - "functionSelector": "0c340a24", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "governor", - "nameLocation": "1674:8:1", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "1682:2:1" - }, - "returnParameters": { - "id": 428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 427, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 429, - "src": "1708:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 426, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1708:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1707:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 434, - "nodeType": "FunctionDefinition", - "src": "1721:57:1", - "functionSelector": "24a3d622", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "pauseGuardian", - "nameLocation": "1730:13:1", - "parameters": { - "id": 430, - "nodeType": "ParameterList", - "parameters": [], - "src": "1743:2:1" - }, - "returnParameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 432, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 434, - "src": "1769:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1769:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1768:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 439, - "nodeType": "FunctionDefinition", - "src": "1782:53:1", - "functionSelector": "c55dae63", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseToken", - "nameLocation": "1791:9:1", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [], - "src": "1800:2:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 439, - "src": "1826:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1826:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1825:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 444, - "nodeType": "FunctionDefinition", - "src": "1839:62:1", - "functionSelector": "e7dad6bd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTokenPriceFeed", - "nameLocation": "1848:18:1", - "parameters": { - "id": 440, - "nodeType": "ParameterList", - "parameters": [], - "src": "1866:2:1" - }, - "returnParameters": { - "id": 443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 442, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "1892:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1892:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1891:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 449, - "nodeType": "FunctionDefinition", - "src": "1905:61:1", - "functionSelector": "44ff241d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "extensionDelegate", - "nameLocation": "1914:17:1", - "parameters": { - "id": 445, - "nodeType": "ParameterList", - "parameters": [], - "src": "1931:2:1" - }, - "returnParameters": { - "id": 448, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 449, - "src": "1957:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 446, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1957:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1956:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 454, - "nodeType": "FunctionDefinition", - "src": "1970:51:1", - "functionSelector": "a5b4ff79", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyKink", - "nameLocation": "1979:10:1", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [], - "src": "1989:2:1" - }, - "returnParameters": { - "id": 453, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 452, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 454, - "src": "2015:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2015:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2014:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 459, - "nodeType": "FunctionDefinition", - "src": "2025:76:1", - "functionSelector": "5a94b8d1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyPerSecondInterestRateSlopeLow", - "nameLocation": "2034:35:1", - "parameters": { - "id": 455, - "nodeType": "ParameterList", - "parameters": [], - "src": "2069:2:1" - }, - "returnParameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2095:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2095:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2094:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 464, - "nodeType": "FunctionDefinition", - "src": "2105:77:1", - "functionSelector": "804de71f", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyPerSecondInterestRateSlopeHigh", - "nameLocation": "2114:36:1", - "parameters": { - "id": 460, - "nodeType": "ParameterList", - "parameters": [], - "src": "2150:2:1" - }, - "returnParameters": { - "id": 463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 462, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 464, - "src": "2176:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 461, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2176:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2175:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 469, - "nodeType": "FunctionDefinition", - "src": "2186:72:1", - "functionSelector": "94920cca", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supplyPerSecondInterestRateBase", - "nameLocation": "2195:31:1", - "parameters": { - "id": 465, - "nodeType": "ParameterList", - "parameters": [], - "src": "2226:2:1" - }, - "returnParameters": { - "id": 468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 467, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 469, - "src": "2252:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 466, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2252:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2251:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 474, - "nodeType": "FunctionDefinition", - "src": "2262:51:1", - "functionSelector": "9241a561", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowKink", - "nameLocation": "2271:10:1", - "parameters": { - "id": 470, - "nodeType": "ParameterList", - "parameters": [], - "src": "2281:2:1" - }, - "returnParameters": { - "id": 473, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 472, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 474, - "src": "2307:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 471, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2307:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2306:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 479, - "nodeType": "FunctionDefinition", - "src": "2317:76:1", - "functionSelector": "2d05670b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowPerSecondInterestRateSlopeLow", - "nameLocation": "2326:35:1", - "parameters": { - "id": 475, - "nodeType": "ParameterList", - "parameters": [], - "src": "2361:2:1" - }, - "returnParameters": { - "id": 478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 477, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "2387:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 476, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2387:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2386:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 484, - "nodeType": "FunctionDefinition", - "src": "2397:77:1", - "functionSelector": "2a48cf12", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowPerSecondInterestRateSlopeHigh", - "nameLocation": "2406:36:1", - "parameters": { - "id": 480, - "nodeType": "ParameterList", - "parameters": [], - "src": "2442:2:1" - }, - "returnParameters": { - "id": 483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 484, - "src": "2468:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2468:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2467:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 489, - "nodeType": "FunctionDefinition", - "src": "2478:72:1", - "functionSelector": "7914acc7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowPerSecondInterestRateBase", - "nameLocation": "2487:31:1", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [], - "src": "2518:2:1" - }, - "returnParameters": { - "id": 488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 487, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 489, - "src": "2544:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 486, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2544:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2543:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 494, - "nodeType": "FunctionDefinition", - "src": "2554:62:1", - "functionSelector": "1f5954bd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "storeFrontPriceFactor", - "nameLocation": "2563:21:1", - "parameters": { - "id": 490, - "nodeType": "ParameterList", - "parameters": [], - "src": "2584:2:1" - }, - "returnParameters": { - "id": 493, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 492, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 494, - "src": "2610:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 491, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2610:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2609:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 499, - "nodeType": "FunctionDefinition", - "src": "2620:50:1", - "functionSelector": "44c1e5eb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseScale", - "nameLocation": "2629:9:1", - "parameters": { - "id": 495, - "nodeType": "ParameterList", - "parameters": [], - "src": "2638:2:1" - }, - "returnParameters": { - "id": 498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 497, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "2664:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 496, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2664:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2663:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 504, - "nodeType": "FunctionDefinition", - "src": "2674:59:1", - "functionSelector": "aba7f15e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "trackingIndexScale", - "nameLocation": "2683:18:1", - "parameters": { - "id": 500, - "nodeType": "ParameterList", - "parameters": [], - "src": "2701:2:1" - }, - "returnParameters": { - "id": 503, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 502, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "2727:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 501, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2727:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2726:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 509, - "nodeType": "FunctionDefinition", - "src": "2737:64:1", - "functionSelector": "189bb2f1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTrackingSupplySpeed", - "nameLocation": "2746:23:1", - "parameters": { - "id": 505, - "nodeType": "ParameterList", - "parameters": [], - "src": "2769:2:1" - }, - "returnParameters": { - "id": 508, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 507, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 509, - "src": "2795:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 506, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2795:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2794:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 514, - "nodeType": "FunctionDefinition", - "src": "2805:64:1", - "functionSelector": "9ea99a5a", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTrackingBorrowSpeed", - "nameLocation": "2814:23:1", - "parameters": { - "id": 510, - "nodeType": "ParameterList", - "parameters": [], - "src": "2837:2:1" - }, - "returnParameters": { - "id": 513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 512, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 514, - "src": "2863:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 511, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2863:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2862:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 519, - "nodeType": "FunctionDefinition", - "src": "2873:58:1", - "functionSelector": "9364e18a", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseMinForRewards", - "nameLocation": "2882:17:1", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [], - "src": "2899:2:1" - }, - "returnParameters": { - "id": 518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 517, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 519, - "src": "2925:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 516, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2925:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2924:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 524, - "nodeType": "FunctionDefinition", - "src": "2935:54:1", - "functionSelector": "300e6beb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseBorrowMin", - "nameLocation": "2944:13:1", - "parameters": { - "id": 520, - "nodeType": "ParameterList", - "parameters": [], - "src": "2957:2:1" - }, - "returnParameters": { - "id": 523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 522, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 524, - "src": "2983:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2983:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2982:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 529, - "nodeType": "FunctionDefinition", - "src": "2993:55:1", - "functionSelector": "32176c49", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "targetReserves", - "nameLocation": "3002:14:1", - "parameters": { - "id": 525, - "nodeType": "ParameterList", - "parameters": [], - "src": "3016:2:1" - }, - "returnParameters": { - "id": 528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 527, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "3042:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3042:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3041:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 534, - "nodeType": "FunctionDefinition", - "src": "3052:51:1", - "functionSelector": "a46fe83b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "numAssets", - "nameLocation": "3061:9:1", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [], - "src": "3070:2:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 534, - "src": "3096:5:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 531, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3096:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3095:7:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 543, - "nodeType": "FunctionDefinition", - "src": "3107:93:1", - "functionSelector": "5c2549ee", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collateralBalanceOf", - "nameLocation": "3116:19:1", - "parameters": { - "id": 539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 536, - "mutability": "mutable", - "name": "account", - "nameLocation": "3144:7:1", - "nodeType": "VariableDeclaration", - "scope": 543, - "src": "3136:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 535, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3136:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 538, - "mutability": "mutable", - "name": "asset", - "nameLocation": "3161:5:1", - "nodeType": "VariableDeclaration", - "scope": 543, - "src": "3153:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3153:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3135:32:1" - }, - "returnParameters": { - "id": 542, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 541, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 543, - "src": "3191:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 540, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "3191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - } - ], - "src": "3190:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 550, - "nodeType": "FunctionDefinition", - "src": "3204:77:1", - "functionSelector": "ab9ba7f4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseTrackingAccrued", - "nameLocation": "3213:19:1", - "parameters": { - "id": 546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 545, - "mutability": "mutable", - "name": "account", - "nameLocation": "3241:7:1", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "3233:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3233:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3232:17:1" - }, - "returnParameters": { - "id": 549, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "3273:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 547, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3273:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3272:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 555, - "nodeType": "FunctionDefinition", - "src": "3285:59:1", - "functionSelector": "a20ed596", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseAccrualScale", - "nameLocation": "3294:16:1", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [], - "src": "3310:2:1" - }, - "returnParameters": { - "id": 554, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 553, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 555, - "src": "3336:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 552, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3336:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3335:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 560, - "nodeType": "FunctionDefinition", - "src": "3348:57:1", - "functionSelector": "96e7a9c1", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "baseIndexScale", - "nameLocation": "3357:14:1", - "parameters": { - "id": 556, - "nodeType": "ParameterList", - "parameters": [], - "src": "3371:2:1" - }, - "returnParameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 558, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 560, - "src": "3397:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 557, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3397:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3396:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 565, - "nodeType": "FunctionDefinition", - "src": "3409:54:1", - "functionSelector": "0f21d96b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "factorScale", - "nameLocation": "3418:11:1", - "parameters": { - "id": 561, - "nodeType": "ParameterList", - "parameters": [], - "src": "3429:2:1" - }, - "returnParameters": { - "id": 564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 563, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 565, - "src": "3455:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 562, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3455:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3454:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 570, - "nodeType": "FunctionDefinition", - "src": "3467:53:1", - "functionSelector": "a0fbddaf", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "priceScale", - "nameLocation": "3476:10:1", - "parameters": { - "id": 566, - "nodeType": "ParameterList", - "parameters": [], - "src": "3486:2:1" - }, - "returnParameters": { - "id": 569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 568, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 570, - "src": "3512:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 567, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3512:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3511:8:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 575, - "nodeType": "FunctionDefinition", - "src": "3524:51:1", - "functionSelector": "94b2294b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "maxAssets", - "nameLocation": "3533:9:1", - "parameters": { - "id": 571, - "nodeType": "ParameterList", - "parameters": [], - "src": "3542:2:1" - }, - "returnParameters": { - "id": 574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 573, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 575, - "src": "3568:5:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 572, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3568:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3567:7:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 581, - "nodeType": "FunctionDefinition", - "src": "3579:66:1", - "functionSelector": "b9f0baf7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalsBasic", - "nameLocation": "3588:11:1", - "parameters": { - "id": 576, - "nodeType": "ParameterList", - "parameters": [], - "src": "3599:2:1" - }, - "returnParameters": { - "id": 580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 579, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "3625:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic" - }, - "typeName": { - "id": 578, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 577, - "name": "TotalsBasic", - "nameLocations": [ - "3625:11:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 323, - "src": "3625:11:1" - }, - "referencedDeclaration": 323, - "src": "3625:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", - "typeString": "struct Comet.TotalsBasic" - } - }, - "visibility": "internal" - } - ], - "src": "3624:20:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 588, - "nodeType": "FunctionDefinition", - "src": "3649:70:1", - "functionSelector": "59e017bd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalsCollateral", - "nameLocation": "3658:16:1", - "parameters": { - "id": 584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 583, - "mutability": "mutable", - "name": "token", - "nameLocation": "3683:5:1", - "nodeType": "VariableDeclaration", - "scope": 588, - "src": "3675:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3675:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3674:15:1" - }, - "returnParameters": { - "id": 587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 586, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 588, - "src": "3713:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 585, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3713:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3712:6:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 597, - "nodeType": "FunctionDefinition", - "src": "3723:83:1", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "3732:9:1", - "parameters": { - "id": 593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 590, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3750:5:1", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "3742:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 589, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3742:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 592, - "mutability": "mutable", - "name": "spender", - "nameLocation": "3765:7:1", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "3757:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 591, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3757:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3741:32:1" - }, - "returnParameters": { - "id": 596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 595, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 597, - "src": "3797:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3797:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3796:9:1" - }, - "scope": 598, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comet", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 598 - ], - "name": "Comet", - "nameLocation": "75:5:1", - "scope": 1269, - "usedErrors": [] - }, - { - "id": 630, - "nodeType": "ContractDefinition", - "src": "3810:340:1", - "nodes": [ - { - "id": 607, - "nodeType": "FunctionDefinition", - "src": "3830:80:1", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "3839:9:1", - "parameters": { - "id": 603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 600, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3857:5:1", - "nodeType": "VariableDeclaration", - "scope": 607, - "src": "3849:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 599, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3849:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 602, - "mutability": "mutable", - "name": "spender", - "nameLocation": "3872:7:1", - "nodeType": "VariableDeclaration", - "scope": 607, - "src": "3864:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 601, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3864:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3848:32:1" - }, - "returnParameters": { - "id": 606, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 605, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 607, - "src": "3904:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 604, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3904:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3903:6:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 614, - "nodeType": "FunctionDefinition", - "src": "3914:63:1", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "3923:9:1", - "parameters": { - "id": 610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 609, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3941:5:1", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "3933:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3932:15:1" - }, - "returnParameters": { - "id": 613, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 612, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 614, - "src": "3971:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 611, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3971:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3970:6:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 619, - "nodeType": "FunctionDefinition", - "src": "3981:49:1", - "functionSelector": "313ce567", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nameLocation": "3990:8:1", - "parameters": { - "id": 615, - "nodeType": "ParameterList", - "parameters": [], - "src": "3998:2:1" - }, - "returnParameters": { - "id": 618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 617, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "4024:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 616, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4024:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4023:6:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 624, - "nodeType": "FunctionDefinition", - "src": "4034:54:1", - "functionSelector": "06fdde03", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nameLocation": "4043:4:1", - "parameters": { - "id": 620, - "nodeType": "ParameterList", - "parameters": [], - "src": "4047:2:1" - }, - "returnParameters": { - "id": 623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 622, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "4073:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 621, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4073:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4072:15:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 629, - "nodeType": "FunctionDefinition", - "src": "4092:56:1", - "functionSelector": "95d89b41", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nameLocation": "4101:6:1", - "parameters": { - "id": 625, - "nodeType": "ParameterList", - "parameters": [], - "src": "4107:2:1" - }, - "returnParameters": { - "id": 628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 627, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 629, - "src": "4133:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 626, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4133:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4132:15:1" - }, - "scope": 630, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "ERC20", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 630 - ], - "name": "ERC20", - "nameLocation": "3820:5:1", - "scope": 1269, - "usedErrors": [] - }, - { - "id": 1268, - "nodeType": "ContractDefinition", - "src": "4152:7746:1", - "nodes": [ - { - "id": 639, - "nodeType": "VariableDeclaration", - "src": "4176:60:1", - "constant": true, - "mutability": "constant", - "name": "SECONDS_PER_YEAR", - "nameLocation": "4199:16:1", - "scope": 1268, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 631, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4176:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_rational_31536000_by_1", - "typeString": "int_const 31536000" - }, - "id": 638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - }, - "id": 636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3630", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4218:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3630", - "id": 633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4223:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_60_by_1", - "typeString": "int_const 60" - }, - "value": "60" - }, - "src": "4218:7:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_3600_by_1", - "typeString": "int_const 3600" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "3234", - "id": 635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4228:2:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_24_by_1", - "typeString": "int_const 24" - }, - "value": "24" - }, - "src": "4218:12:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_86400_by_1", - "typeString": "int_const 86400" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "hexValue": "333635", - "id": 637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4233:3:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_365_by_1", - "typeString": "int_const 365" - }, - "value": "365" - }, - "src": "4218:18:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_31536000_by_1", - "typeString": "int_const 31536000" - } - }, - "visibility": "internal" - }, - { - "id": 656, - "nodeType": "StructDefinition", - "src": "4241:184:1", - "canonicalName": "CometQuery.BaseAsset", - "members": [ - { - "constant": false, - "id": 641, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "4272:9:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4264:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4264:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 643, - "mutability": "mutable", - "name": "balanceOfComet", - "nameLocation": "4292:14:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 642, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 645, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "4317:8:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4312:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 644, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4312:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 647, - "mutability": "mutable", - "name": "minBorrow", - "nameLocation": "4336:9:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 646, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4331:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 649, - "mutability": "mutable", - "name": "name", - "nameLocation": "4358:4:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4351:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 648, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4351:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 651, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "4376:9:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4368:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4368:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 653, - "mutability": "mutable", - "name": "price", - "nameLocation": "4396:5:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4391:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 652, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4391:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 655, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "4414:6:1", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "4407:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 654, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "BaseAsset", - "nameLocation": "4248:9:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 679, - "nodeType": "StructDefinition", - "src": "4429:262:1", - "canonicalName": "CometQuery.BaseAssetWithAccountState", - "members": [ - { - "constant": false, - "id": 658, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "4476:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4468:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4468:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 660, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "4496:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4491:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4491:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 662, - "mutability": "mutable", - "name": "balance", - "nameLocation": "4516:7:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4511:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4511:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 664, - "mutability": "mutable", - "name": "balanceOfComet", - "nameLocation": "4534:14:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4529:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 663, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4529:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 666, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "4559:8:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4554:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4554:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 668, - "mutability": "mutable", - "name": "minBorrow", - "nameLocation": "4578:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4573:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 667, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4573:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 670, - "mutability": "mutable", - "name": "name", - "nameLocation": "4600:4:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4593:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 669, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4593:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 672, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "4618:9:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4610:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4610:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 674, - "mutability": "mutable", - "name": "price", - "nameLocation": "4638:5:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4633:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 673, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4633:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 676, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "4656:6:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4649:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 675, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 678, - "mutability": "mutable", - "name": "walletBalance", - "nameLocation": "4673:13:1", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "4668:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 677, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4668:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "BaseAssetWithAccountState", - "nameLocation": "4436:25:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 702, - "nodeType": "StructDefinition", - "src": "4695:284:1", - "canonicalName": "CometQuery.CollateralAsset", - "members": [ - { - "constant": false, - "id": 681, - "mutability": "mutable", - "name": "collateralAsset", - "nameLocation": "4732:15:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4724:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 680, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4724:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 683, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "4758:16:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4753:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 682, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4753:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 685, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "4785:8:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4780:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 684, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4780:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 687, - "mutability": "mutable", - "name": "name", - "nameLocation": "4806:4:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4799:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 686, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4799:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 689, - "mutability": "mutable", - "name": "liquidateCollateralFactor", - "nameLocation": "4821:25:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4816:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 688, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4816:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 691, - "mutability": "mutable", - "name": "liquidationFactor", - "nameLocation": "4857:17:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4852:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 690, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4852:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 693, - "mutability": "mutable", - "name": "price", - "nameLocation": "4885:5:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4880:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 692, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4880:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 695, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "4904:9:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4896:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4896:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 697, - "mutability": "mutable", - "name": "supplyCap", - "nameLocation": "4924:9:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4919:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 696, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4919:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 699, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "4946:6:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4939:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 698, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4939:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 701, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "4963:11:1", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "4958:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 700, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4958:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CollateralAsset", - "nameLocation": "4702:15:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 731, - "nodeType": "StructDefinition", - "src": "4983:362:1", - "canonicalName": "CometQuery.CollateralAssetWithAccountState", - "members": [ - { - "constant": false, - "id": 704, - "mutability": "mutable", - "name": "collateralAsset", - "nameLocation": "5036:15:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5028:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5028:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 706, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "5062:9:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5057:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 705, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5057:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 708, - "mutability": "mutable", - "name": "balance", - "nameLocation": "5082:7:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5077:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 707, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5077:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 710, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "5100:16:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5095:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 709, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5095:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 712, - "mutability": "mutable", - "name": "decimals", - "nameLocation": "5127:8:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5122:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 711, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5122:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 714, - "mutability": "mutable", - "name": "name", - "nameLocation": "5148:4:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5141:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 713, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5141:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 716, - "mutability": "mutable", - "name": "liquidateCollateralFactor", - "nameLocation": "5163:25:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5158:30:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 715, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5158:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 718, - "mutability": "mutable", - "name": "liquidationFactor", - "nameLocation": "5199:17:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5194:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 717, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5194:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 720, - "mutability": "mutable", - "name": "price", - "nameLocation": "5227:5:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5222:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 719, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5222:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 722, - "mutability": "mutable", - "name": "priceFeed", - "nameLocation": "5246:9:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5238:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5238:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 724, - "mutability": "mutable", - "name": "supplyCap", - "nameLocation": "5266:9:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5261:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 723, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5261:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 726, - "mutability": "mutable", - "name": "symbol", - "nameLocation": "5288:6:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5281:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 725, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5281:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 728, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "5305:11:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5300:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5300:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 730, - "mutability": "mutable", - "name": "walletBalance", - "nameLocation": "5327:13:1", - "nodeType": "VariableDeclaration", - "scope": 731, - "src": "5322:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 729, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5322:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CollateralAssetWithAccountState", - "nameLocation": "4990:31:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 759, - "nodeType": "StructDefinition", - "src": "5349:357:1", - "canonicalName": "CometQuery.CometState", - "members": [ - { - "constant": false, - "id": 734, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "5383:9:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5373:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", - "typeString": "struct CometQuery.BaseAsset" - }, - "typeName": { - "id": 733, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 732, - "name": "BaseAsset", - "nameLocations": [ - "5373:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 656, - "src": "5373:9:1" - }, - "referencedDeclaration": 656, - "src": "5373:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", - "typeString": "struct CometQuery.BaseAsset" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 736, - "mutability": "mutable", - "name": "baseMinForRewards", - "nameLocation": "5403:17:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5398:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 735, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5398:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 738, - "mutability": "mutable", - "name": "baseTrackingBorrowSpeed", - "nameLocation": "5431:23:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5426:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 737, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5426:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 740, - "mutability": "mutable", - "name": "baseTrackingSupplySpeed", - "nameLocation": "5465:23:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5460:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 739, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5460:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 742, - "mutability": "mutable", - "name": "borrowAPR", - "nameLocation": "5499:9:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5494:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 741, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5494:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 746, - "mutability": "mutable", - "name": "collateralAssets", - "nameLocation": "5532:16:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5514:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - }, - "typeName": { - "baseType": { - "id": 744, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 743, - "name": "CollateralAsset", - "nameLocations": [ - "5514:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "5514:15:1" - }, - "referencedDeclaration": 702, - "src": "5514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "id": 745, - "nodeType": "ArrayTypeName", - "src": "5514:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 748, - "mutability": "mutable", - "name": "earnAPR", - "nameLocation": "5559:7:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5554:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 747, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5554:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 750, - "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "5577:11:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5572:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 749, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5572:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "mutability": "mutable", - "name": "totalBorrowPrincipal", - "nameLocation": "5599:20:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5594:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5594:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 754, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "5630:11:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5625:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 753, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5625:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 756, - "mutability": "mutable", - "name": "totalSupplyPrincipal", - "nameLocation": "5652:20:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5647:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5647:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 758, - "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "5683:18:1", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "5678:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 757, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5678:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CometState", - "nameLocation": "5356:10:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 789, - "nodeType": "StructDefinition", - "src": "5710:431:1", - "canonicalName": "CometQuery.CometStateWithAccountState", - "members": [ - { - "constant": false, - "id": 762, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "5776:9:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5750:35:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - }, - "typeName": { - "id": 761, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 760, - "name": "BaseAssetWithAccountState", - "nameLocations": [ - "5750:25:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 679, - "src": "5750:25:1" - }, - "referencedDeclaration": 679, - "src": "5750:25:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 764, - "mutability": "mutable", - "name": "baseMinForRewards", - "nameLocation": "5796:17:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5791:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 763, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5791:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 766, - "mutability": "mutable", - "name": "baseTrackingBorrowSpeed", - "nameLocation": "5824:23:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5819:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5819:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 768, - "mutability": "mutable", - "name": "baseTrackingSupplySpeed", - "nameLocation": "5858:23:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5853:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 767, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5853:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 770, - "mutability": "mutable", - "name": "borrowAPR", - "nameLocation": "5892:9:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5887:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 769, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5887:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "mutability": "mutable", - "name": "bulkerAllowance", - "nameLocation": "5912:15:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5907:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5907:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 776, - "mutability": "mutable", - "name": "collateralAssets", - "nameLocation": "5967:16:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5933:50:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - }, - "typeName": { - "baseType": { - "id": 774, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 773, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "5933:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "5933:31:1" - }, - "referencedDeclaration": 731, - "src": "5933:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "id": 775, - "nodeType": "ArrayTypeName", - "src": "5933:33:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "mutability": "mutable", - "name": "earnAPR", - "nameLocation": "5994:7:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "5989:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 777, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5989:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 780, - "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "6012:11:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6007:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 779, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 782, - "mutability": "mutable", - "name": "totalBorrowPrincipal", - "nameLocation": "6034:20:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6029:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 781, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6029:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 784, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "6065:11:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6060:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 783, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6060:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 786, - "mutability": "mutable", - "name": "totalSupplyPrincipal", - "nameLocation": "6087:20:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6082:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 785, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6082:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 788, - "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "6118:18:1", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6113:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 787, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6113:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CometStateWithAccountState", - "nameLocation": "5717:26:1", - "scope": 1268, - "visibility": "public" - }, - { - "id": 979, - "nodeType": "FunctionDefinition", - "src": "6145:2007:1", - "body": { - "id": 978, - "nodeType": "Block", - "src": "6213:1939:1", - "statements": [ - { - "assignments": [ - 799 - ], - "declarations": [ - { - "constant": false, - "id": 799, - "mutability": "mutable", - "name": "numAssets", - "nameLocation": "6224:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6219:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 798, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6219:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 803, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 800, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6236:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6242:9:1", - "memberName": "numAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 534, - "src": "6236:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6236:17:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6219:34:1" - }, - { - "assignments": [ - 805 - ], - "declarations": [ - { - "constant": false, - "id": 805, - "mutability": "mutable", - "name": "baseToken", - "nameLocation": "6267:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6259:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 804, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6259:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 809, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 806, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6285:9:1", - "memberName": "baseToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 439, - "src": "6279:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6279:17:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6259:37:1" - }, - { - "assignments": [ - 811 - ], - "declarations": [ - { - "constant": false, - "id": 811, - "mutability": "mutable", - "name": "baseTokenPriceFeed", - "nameLocation": "6310:18:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6302:26:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6302:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 815, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 812, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6331:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6337:18:1", - "memberName": "baseTokenPriceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 444, - "src": "6331:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6331:26:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6302:55:1" - }, - { - "assignments": [ - 817 - ], - "declarations": [ - { - "constant": false, - "id": 817, - "mutability": "mutable", - "name": "borrowMin", - "nameLocation": "6368:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6363:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 816, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6363:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 821, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 818, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6380:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6386:13:1", - "memberName": "baseBorrowMin", - "nodeType": "MemberAccess", - "referencedDeclaration": 524, - "src": "6380:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6380:21:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6363:38:1" - }, - { - "assignments": [ - 823 - ], - "declarations": [ - { - "constant": false, - "id": 823, - "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "6412:18:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6407:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 822, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 827, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 824, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6433:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6439:18:1", - "memberName": "trackingIndexScale", - "nodeType": "MemberAccess", - "referencedDeclaration": 504, - "src": "6433:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6433:26:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6407:52:1" - }, - { - "assignments": [ - 829 - ], - "declarations": [ - { - "constant": false, - "id": 829, - "mutability": "mutable", - "name": "baseTrackingSupplySpeed", - "nameLocation": "6470:23:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6465:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 828, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6465:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 833, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 830, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6502:23:1", - "memberName": "baseTrackingSupplySpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 509, - "src": "6496:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6496:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6465:62:1" - }, - { - "assignments": [ - 835 - ], - "declarations": [ - { - "constant": false, - "id": 835, - "mutability": "mutable", - "name": "baseTrackingBorrowSpeed", - "nameLocation": "6538:23:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6533:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 834, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6533:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 839, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 836, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6564:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6570:23:1", - "memberName": "baseTrackingBorrowSpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 514, - "src": "6564:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6564:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6533:62:1" - }, - { - "assignments": [ - 841 - ], - "declarations": [ - { - "constant": false, - "id": 841, - "mutability": "mutable", - "name": "baseMinForRewards", - "nameLocation": "6606:17:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6601:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 840, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6601:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 845, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 842, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6632:17:1", - "memberName": "baseMinForRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 519, - "src": "6626:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6626:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6601:50:1" - }, - { - "assignments": [ - 847 - ], - "declarations": [ - { - "constant": false, - "id": 847, - "mutability": "mutable", - "name": "utilization", - "nameLocation": "6662:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6657:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 846, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6657:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 851, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 848, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6676:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6682:14:1", - "memberName": "getUtilization", - "nodeType": "MemberAccess", - "referencedDeclaration": 424, - "src": "6676:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6676:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6657:41:1" - }, - { - "assignments": [ - 853 - ], - "declarations": [ - { - "constant": false, - "id": 853, - "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "6709:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6704:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 852, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6704:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 857, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 854, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6723:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6729:11:1", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 386, - "src": "6723:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6723:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6704:38:1" - }, - { - "assignments": [ - 859 - ], - "declarations": [ - { - "constant": false, - "id": 859, - "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "6753:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6748:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 858, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6748:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 860, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6767:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6773:11:1", - "memberName": "totalBorrow", - "nodeType": "MemberAccess", - "referencedDeclaration": 391, - "src": "6767:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6767:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6748:38:1" - }, - { - "assignments": [ - 868 - ], - "declarations": [ - { - "constant": false, - "id": 868, - "mutability": "mutable", - "name": "totalsBasic", - "nameLocation": "6817:11:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6792:36:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic" - }, - "typeName": { - "id": 867, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 866, - "name": "Comet.TotalsBasic", - "nameLocations": [ - "6792:5:1", - "6798:11:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 323, - "src": "6792:17:1" - }, - "referencedDeclaration": 323, - "src": "6792:17:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", - "typeString": "struct Comet.TotalsBasic" - } - }, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 869, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6831:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6837:11:1", - "memberName": "totalsBasic", - "nodeType": "MemberAccess", - "referencedDeclaration": 581, - "src": "6831:17:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", - "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6831:19:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6792:58:1" - }, - { - "assignments": [ - 874 - ], - "declarations": [ - { - "constant": false, - "id": 874, - "mutability": "mutable", - "name": "borrowRatePerSecond", - "nameLocation": "6861:19:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6856:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 873, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6856:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 879, - "initialValue": { - "arguments": [ - { - "id": 877, - "name": "utilization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "6903:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 875, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6883:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6889:13:1", - "memberName": "getBorrowRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 419, - "src": "6883:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", - "typeString": "function (uint256) view external returns (uint64)" - } - }, - "id": 878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6883:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6856:59:1" - }, - { - "assignments": [ - 881 - ], - "declarations": [ - { - "constant": false, - "id": 881, - "mutability": "mutable", - "name": "supplyRatePerSecond", - "nameLocation": "6926:19:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6921:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 886, - "initialValue": { - "arguments": [ - { - "id": 884, - "name": "utilization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "6968:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 882, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6948:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6954:13:1", - "memberName": "getSupplyRate", - "nodeType": "MemberAccess", - "referencedDeclaration": 412, - "src": "6948:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", - "typeString": "function (uint256) view external returns (uint64)" - } - }, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6948:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6921:59:1" - }, - { - "assignments": [ - 889 - ], - "declarations": [ - { - "constant": false, - "id": 889, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "7004:9:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6987:26:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset" - }, - "typeName": { - "id": 888, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 887, - "name": "BaseAsset", - "nameLocations": [ - "6987:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 656, - "src": "6987:9:1" - }, - "referencedDeclaration": 656, - "src": "6987:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", - "typeString": "struct CometQuery.BaseAsset" - } - }, - "visibility": "internal" - } - ], - "id": 923, - "initialValue": { - "arguments": [ - { - "id": 891, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7045:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 893, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7076:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 892, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7070:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7070:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7087:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 629, - "src": "7070:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7070:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 898, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7119:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 897, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7113:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7113:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7130:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 619, - "src": "7113:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7113:27:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 902, - "name": "borrowMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "7159:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "id": 904, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7188:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7182:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7182:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7199:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "7182:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7182:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 908, - "name": "baseTokenPriceFeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "7224:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 911, - "name": "baseTokenPriceFeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "7272:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 909, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7263:8:1", - "memberName": "getPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "7257:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7257:34:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 919, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7342:7:1", - "typeDescriptions": {} - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7342:14:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "id": 914, - "name": "baseToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7321:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 913, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "7315:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7315:16:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7332:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 614, - "src": "7315:26:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7315:42:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 890, - "name": "BaseAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "7016:9:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", - "typeString": "type(struct CometQuery.BaseAsset storage pointer)" - } - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "7034:9:1", - "7062:6:1", - "7103:8:1", - "7148:9:1", - "7176:4:1", - "7213:9:1", - "7250:5:1", - "7299:14:1" - ], - "names": [ - "baseAsset", - "symbol", - "decimals", - "minBorrow", - "name", - "priceFeed", - "price", - "balanceOfComet" - ], - "nodeType": "FunctionCall", - "src": "7016:348:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6987:377:1" - }, - { - "assignments": [ - 928 - ], - "declarations": [ - { - "constant": false, - "id": 928, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "7396:6:1", - "nodeType": "VariableDeclaration", - "scope": 978, - "src": "7371:31:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - }, - "typeName": { - "baseType": { - "id": 926, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 925, - "name": "CollateralAsset", - "nameLocations": [ - "7371:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "7371:15:1" - }, - "referencedDeclaration": 702, - "src": "7371:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "id": 927, - "nodeType": "ArrayTypeName", - "src": "7371:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - } - }, - "visibility": "internal" - } - ], - "id": 935, - "initialValue": { - "arguments": [ - { - "id": 933, - "name": "numAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "7427:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "7405:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 930, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 929, - "name": "CollateralAsset", - "nameLocations": [ - "7409:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "7409:15:1" - }, - "referencedDeclaration": 702, - "src": "7409:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "id": 931, - "nodeType": "ArrayTypeName", - "src": "7409:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset[]" - } - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7405:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7371:66:1" - }, - { - "body": { - "id": 955, - "nodeType": "Block", - "src": "7481:51:1", - "statements": [ - { - "expression": { - "id": 953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 946, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7489:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 948, - "indexExpression": { - "id": 947, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7496:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7489:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 950, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7516:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 951, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7523:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 949, - "name": "collateralInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "7501:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", - "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" - } - }, - "id": 952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7501:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "src": "7489:36:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 954, - "nodeType": "ExpressionStatement", - "src": "7489:36:1" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 940, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7461:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 941, - "name": "numAssets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "7465:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7461:13:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 956, - "initializationExpression": { - "assignments": [ - 937 - ], - "declarations": [ - { - "constant": false, - "id": 937, - "mutability": "mutable", - "name": "i", - "nameLocation": "7454:1:1", - "nodeType": "VariableDeclaration", - "scope": 956, - "src": "7448:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 936, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "7448:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 939, - "initialValue": { - "hexValue": "30", - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7458:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7448:11:1" - }, - "loopExpression": { - "expression": { - "id": 944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7476:3:1", - "subExpression": { - "id": 943, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 945, - "nodeType": "ExpressionStatement", - "src": "7476:3:1" - }, - "nodeType": "ForStatement", - "src": "7443:89:1" - }, - { - "expression": { - "arguments": [ - { - "id": 958, - "name": "baseAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "7583:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - { - "id": 959, - "name": "baseMinForRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "7621:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 960, - "name": "baseTrackingBorrowSpeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "7673:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 961, - "name": "baseTrackingSupplySpeed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "7731:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 962, - "name": "borrowRatePerSecond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "7775:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 963, - "name": "SECONDS_PER_YEAR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "7797:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7775:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 965, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7841:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 966, - "name": "supplyRatePerSecond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "7866:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 967, - "name": "SECONDS_PER_YEAR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "7888:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7866:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 969, - "name": "totalBorrow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "7927:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 970, - "name": "totalsBasic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "7970:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic memory" - } - }, - "id": 971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7982:15:1", - "memberName": "totalBorrowBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 318, - "src": "7970:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - { - "id": 972, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 853, - "src": "8020:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 973, - "name": "totalsBasic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8063:11:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", - "typeString": "struct Comet.TotalsBasic memory" - } - }, - "id": 974, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8075:15:1", - "memberName": "totalSupplyBase", - "nodeType": "MemberAccess", - "referencedDeclaration": 316, - "src": "8063:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - } - }, - { - "id": 975, - "name": "trackingIndexScale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "8120:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint104", - "typeString": "uint104" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 957, - "name": "CometState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "7551:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", - "typeString": "type(struct CometQuery.CometState storage pointer)" - } - }, - "id": 976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "7572:9:1", - "7602:17:1", - "7648:23:1", - "7706:23:1", - "7764:9:1", - "7823:16:1", - "7857:7:1", - "7914:11:1", - "7948:20:1", - "8007:11:1", - "8041:20:1", - "8100:18:1" - ], - "names": [ - "baseAsset", - "baseMinForRewards", - "baseTrackingBorrowSpeed", - "baseTrackingSupplySpeed", - "borrowAPR", - "collateralAssets", - "earnAPR", - "totalBorrow", - "totalBorrowPrincipal", - "totalSupply", - "totalSupplyPrincipal", - "trackingIndexScale" - ], - "nodeType": "FunctionCall", - "src": "7551:596:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "functionReturnParameters": 797, - "id": 977, - "nodeType": "Return", - "src": "7538:609:1" - } - ] - }, - "functionSelector": "d4fc9fc6", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "query", - "nameLocation": "6154:5:1", - "parameters": { - "id": 793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 792, - "mutability": "mutable", - "name": "comet", - "nameLocation": "6166:5:1", - "nodeType": "VariableDeclaration", - "scope": 979, - "src": "6160:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 791, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 790, - "name": "Comet", - "nameLocations": [ - "6160:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "6160:5:1" - }, - "referencedDeclaration": 598, - "src": "6160:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - } - ], - "src": "6159:13:1" - }, - "returnParameters": { - "id": 797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 796, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 979, - "src": "6194:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState" - }, - "typeName": { - "id": 795, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 794, - "name": "CometState", - "nameLocations": [ - "6194:10:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 759, - "src": "6194:10:1" - }, - "referencedDeclaration": 759, - "src": "6194:10:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", - "typeString": "struct CometQuery.CometState" - } - }, - "visibility": "internal" - } - ], - "src": "6193:19:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 1138, - "nodeType": "FunctionDefinition", - "src": "8156:2025:1", - "body": { - "id": 1137, - "nodeType": "Block", - "src": "8316:1865:1", - "statements": [ - { - "assignments": [ - 994 - ], - "declarations": [ - { - "constant": false, - "id": 994, - "mutability": "mutable", - "name": "response", - "nameLocation": "8340:8:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8322:26:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState" - }, - "typeName": { - "id": 993, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 992, - "name": "CometState", - "nameLocations": [ - "8322:10:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 759, - "src": "8322:10:1" - }, - "referencedDeclaration": 759, - "src": "8322:10:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", - "typeString": "struct CometQuery.CometState" - } - }, - "visibility": "internal" - } - ], - "id": 998, - "initialValue": { - "arguments": [ - { - "id": 996, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8357:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 995, - "name": "query", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8351:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", - "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" - } - }, - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8351:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8322:41:1" - }, - { - "assignments": [ - 1000 - ], - "declarations": [ - { - "constant": false, - "id": 1000, - "mutability": "mutable", - "name": "baseAssetSupplyBalance", - "nameLocation": "8375:22:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8370:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 999, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8370:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1005, - "initialValue": { - "arguments": [ - { - "id": 1003, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8416:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1001, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8400:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8406:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 398, - "src": "8400:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8400:24:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8370:54:1" - }, - { - "assignments": [ - 1007 - ], - "declarations": [ - { - "constant": false, - "id": 1007, - "mutability": "mutable", - "name": "baseAssetBorrowBalance", - "nameLocation": "8435:22:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8430:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8430:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1012, - "initialValue": { - "arguments": [ - { - "id": 1010, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8482:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1008, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8460:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8466:15:1", - "memberName": "borrowBalanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 405, - "src": "8460:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8460:30:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8430:60:1" - }, - { - "assignments": [ - 1015 - ], - "declarations": [ - { - "constant": false, - "id": 1015, - "mutability": "mutable", - "name": "baseAsset", - "nameLocation": "8530:9:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8497:42:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - }, - "typeName": { - "id": 1014, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1013, - "name": "BaseAssetWithAccountState", - "nameLocations": [ - "8497:25:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 679, - "src": "8497:25:1" - }, - "referencedDeclaration": 679, - "src": "8497:25:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState" - } - }, - "visibility": "internal" - } - ], - "id": 1065, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1017, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8587:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1018, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8596:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8587:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8606:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 641, - "src": "8587:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1026, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8680:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "id": 1029, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8697:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8689:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1027, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8689:7:1", - "typeDescriptions": {} - } - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8689:14:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1021, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8640:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1022, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8649:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8640:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1023, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8659:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 641, - "src": "8640:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1020, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "8634:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8634:35:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8670:9:1", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 607, - "src": "8634:45:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8634:70:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1032, - "name": "baseAssetSupplyBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "8721:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 1033, - "name": "baseAssetBorrowBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "8746:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8721:47:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1035, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8784:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1036, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8793:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8784:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8803:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 655, - "src": "8784:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "expression": { - "id": 1038, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8827:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8836:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8827:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1040, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8846:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 645, - "src": "8827:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1041, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8873:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1042, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8882:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8873:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1043, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8892:9:1", - "memberName": "minBorrow", - "nodeType": "MemberAccess", - "referencedDeclaration": 647, - "src": "8873:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1044, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8915:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8924:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8915:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1046, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8934:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 649, - "src": "8915:23:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "expression": { - "id": 1047, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8957:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8966:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "8957:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1049, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8976:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 651, - "src": "8957:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "expression": { - "id": 1050, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9000:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9009:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "9000:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1052, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9019:5:1", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 653, - "src": "9000:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 1053, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9048:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9057:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "9048:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1055, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9067:14:1", - "memberName": "balanceOfComet", - "nodeType": "MemberAccess", - "referencedDeclaration": 643, - "src": "9048:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1062, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1057, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9110:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9119:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 734, - "src": "9110:18:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", - "typeString": "struct CometQuery.BaseAsset memory" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9129:9:1", - "memberName": "baseAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 641, - "src": "9110:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1056, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "9104:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9104:35:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9140:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 614, - "src": "9104:45:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9104:54:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1016, - "name": "BaseAssetWithAccountState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "8542:25:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", - "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "8576:9:1", - "8623:9:1", - "8712:7:1", - "8776:6:1", - "8817:8:1", - "8862:9:1", - "8909:4:1", - "8946:9:1", - "8993:5:1", - "9032:14:1", - "9089:13:1" - ], - "names": [ - "baseAsset", - "allowance", - "balance", - "symbol", - "decimals", - "minBorrow", - "name", - "priceFeed", - "price", - "balanceOfComet", - "walletBalance" - ], - "nodeType": "FunctionCall", - "src": "8542:623:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8497:668:1" - }, - { - "assignments": [ - 1070 - ], - "declarations": [ - { - "constant": false, - "id": 1070, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "9213:6:1", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "9172:47:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - }, - "typeName": { - "baseType": { - "id": 1068, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1067, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "9172:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "9172:31:1" - }, - "referencedDeclaration": 731, - "src": "9172:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "id": 1069, - "nodeType": "ArrayTypeName", - "src": "9172:33:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - } - }, - "visibility": "internal" - } - ], - "id": 1079, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 1075, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9267:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9276:16:1", - "memberName": "collateralAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 746, - "src": "9267:25:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9293:6:1", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9267:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "9222:37:1", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 1072, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1071, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "9226:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "9226:31:1" - }, - "referencedDeclaration": 731, - "src": "9226:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "id": 1073, - "nodeType": "ArrayTypeName", - "src": "9226:33:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" - } - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9222:83:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9172:133:1" - }, - { - "body": { - "id": 1105, - "nodeType": "Block", - "src": "9372:98:1", - "statements": [ - { - "expression": { - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1092, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "9380:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - } - }, - "id": 1094, - "indexExpression": { - "id": 1093, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9387:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9380:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1096, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "9418:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "baseExpression": { - "expression": { - "id": 1097, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9425:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1098, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9434:16:1", - "memberName": "collateralAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 746, - "src": "9425:25:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 1100, - "indexExpression": { - "id": 1099, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9451:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9425:28:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - { - "id": 1101, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9455:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1095, - "name": "collateralInfoWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "9392:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", - "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9392:71:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "src": "9380:83:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "id": 1104, - "nodeType": "ExpressionStatement", - "src": "9380:83:1" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1084, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9329:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "expression": { - "id": 1085, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9333:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1086, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9342:16:1", - "memberName": "collateralAssets", - "nodeType": "MemberAccess", - "referencedDeclaration": 746, - "src": "9333:25:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory[] memory" - } - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9359:6:1", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "9333:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9329:36:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1106, - "initializationExpression": { - "assignments": [ - 1081 - ], - "declarations": [ - { - "constant": false, - "id": 1081, - "mutability": "mutable", - "name": "i", - "nameLocation": "9322:1:1", - "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "9316:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1080, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "9316:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 1083, - "initialValue": { - "hexValue": "30", - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9326:1:1", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9316:11:1" - }, - "loopExpression": { - "expression": { - "id": 1090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9367:3:1", - "subExpression": { - "id": 1089, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9367:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 1091, - "nodeType": "ExpressionStatement", - "src": "9367:3:1" - }, - "nodeType": "ForStatement", - "src": "9311:159:1" - }, - { - "expression": { - "arguments": [ - { - "id": 1108, - "name": "baseAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "9537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState memory" - } - }, - { - "expression": { - "id": 1109, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9575:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9584:17:1", - "memberName": "baseMinForRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 736, - "src": "9575:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1111, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9636:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1112, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9645:23:1", - "memberName": "baseTrackingBorrowSpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 738, - "src": "9636:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1113, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9703:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1114, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9712:23:1", - "memberName": "baseTrackingSupplySpeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 740, - "src": "9703:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1115, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9756:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1116, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9765:9:1", - "memberName": "borrowAPR", - "nodeType": "MemberAccess", - "referencedDeclaration": 742, - "src": "9756:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1119, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9817:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1120, - "name": "bulker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "9826:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1117, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "9801:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9807:9:1", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "9801:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9801:32:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1122, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "9861:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - } - }, - { - "expression": { - "id": 1123, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9886:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1124, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9895:7:1", - "memberName": "earnAPR", - "nodeType": "MemberAccess", - "referencedDeclaration": 748, - "src": "9886:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1125, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9925:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9934:11:1", - "memberName": "totalBorrow", - "nodeType": "MemberAccess", - "referencedDeclaration": 750, - "src": "9925:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1127, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9977:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1128, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9986:20:1", - "memberName": "totalBorrowPrincipal", - "nodeType": "MemberAccess", - "referencedDeclaration": 752, - "src": "9977:29:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1129, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10029:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10038:11:1", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 754, - "src": "10029:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1131, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10081:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10090:20:1", - "memberName": "totalSupplyPrincipal", - "nodeType": "MemberAccess", - "referencedDeclaration": 756, - "src": "10081:29:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1133, - "name": "response", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10140:8:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", - "typeString": "struct CometQuery.CometState memory" - } - }, - "id": 1134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10149:18:1", - "memberName": "trackingIndexScale", - "nodeType": "MemberAccess", - "referencedDeclaration": 758, - "src": "10140:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", - "typeString": "struct CometQuery.BaseAssetWithAccountState memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1107, - "name": "CometStateWithAccountState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "9489:26:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$789_storage_ptr_$", - "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "9526:9:1", - "9556:17:1", - "9611:23:1", - "9678:23:1", - "9745:9:1", - "9784:15:1", - "9843:16:1", - "9877:7:1", - "9912:11:1", - "9955:20:1", - "10016:11:1", - "10059:20:1", - "10120:18:1" - ], - "names": [ - "baseAsset", - "baseMinForRewards", - "baseTrackingBorrowSpeed", - "baseTrackingSupplySpeed", - "borrowAPR", - "bulkerAllowance", - "collateralAssets", - "earnAPR", - "totalBorrow", - "totalBorrowPrincipal", - "totalSupply", - "totalSupplyPrincipal", - "trackingIndexScale" - ], - "nodeType": "FunctionCall", - "src": "9489:687:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - }, - "functionReturnParameters": 991, - "id": 1136, - "nodeType": "Return", - "src": "9476:700:1" - } - ] - }, - "functionSelector": "5346cc19", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "queryWithAccount", - "nameLocation": "8165:16:1", - "parameters": { - "id": 987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 982, - "mutability": "mutable", - "name": "comet", - "nameLocation": "8193:5:1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8187:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 981, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 980, - "name": "Comet", - "nameLocations": [ - "8187:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "8187:5:1" - }, - "referencedDeclaration": 598, - "src": "8187:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 984, - "mutability": "mutable", - "name": "account", - "nameLocation": "8220:7:1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8204:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8204:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 986, - "mutability": "mutable", - "name": "bulker", - "nameLocation": "8249:6:1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8233:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8233:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "8181:78:1" - }, - "returnParameters": { - "id": 991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 990, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8281:33:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 989, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 988, - "name": "CometStateWithAccountState", - "nameLocations": [ - "8281:26:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "8281:26:1" - }, - "referencedDeclaration": 789, - "src": "8281:26:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - } - ], - "src": "8280:35:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 1203, - "nodeType": "FunctionDefinition", - "src": "10185:782:1", - "body": { - "id": 1202, - "nodeType": "Block", - "src": "10280:687:1", - "statements": [ - { - "assignments": [ - 1153 - ], - "declarations": [ - { - "constant": false, - "id": 1153, - "mutability": "mutable", - "name": "assetInfo", - "nameLocation": "10309:9:1", - "nodeType": "VariableDeclaration", - "scope": 1202, - "src": "10286:32:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo" - }, - "typeName": { - "id": 1152, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1151, - "name": "Comet.AssetInfo", - "nameLocations": [ - "10286:5:1", - "10292:9:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 306, - "src": "10286:15:1" - }, - "referencedDeclaration": 306, - "src": "10286:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", - "typeString": "struct Comet.AssetInfo" - } - }, - "visibility": "internal" - } - ], - "id": 1158, - "initialValue": { - "arguments": [ - { - "id": 1156, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "10340:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "id": 1154, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10321:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10327:12:1", - "memberName": "getAssetInfo", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "10321:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", - "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" - } - }, - "id": 1157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10321:25:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10286:60:1" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 1160, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10409:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10419:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10409:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1162, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10452:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10462:22:1", - "memberName": "borrowCollateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 299, - "src": "10452:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "expression": { - "id": 1165, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10510:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1166, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10520:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10510:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1164, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10504:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10504:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10527:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 619, - "src": "10504:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10504:33:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1170, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10574:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10584:25:1", - "memberName": "liquidateCollateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 301, - "src": "10574:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "expression": { - "id": 1172, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10638:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10648:17:1", - "memberName": "liquidationFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 303, - "src": "10638:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "expression": { - "id": 1175, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10687:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1176, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10697:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10687:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1174, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10681:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10681:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10704:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "10681:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 1179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10681:29:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1182, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10742:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1183, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10752:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10742:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1180, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10727:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10733:8:1", - "memberName": "getPrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "10727:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10727:35:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1185, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10783:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10793:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10783:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1187, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10823:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10833:9:1", - "memberName": "supplyCap", - "nodeType": "MemberAccess", - "referencedDeclaration": 305, - "src": "10823:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [ - { - "expression": { - "id": 1190, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10866:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10876:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10866:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1189, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10860:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10860:22:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10883:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 629, - "src": "10860:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10860:31:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1197, - "name": "assetInfo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10937:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", - "typeString": "struct Comet.AssetInfo memory" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10947:5:1", - "memberName": "asset", - "nodeType": "MemberAccess", - "referencedDeclaration": 293, - "src": "10937:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1195, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10914:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10920:16:1", - "memberName": "totalsCollateral", - "nodeType": "MemberAccess", - "referencedDeclaration": 588, - "src": "10914:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10914:39:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1159, - "name": "CollateralAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 702, - "src": "10366:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", - "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "10392:15:1", - "10434:16:1", - "10494:8:1", - "10547:25:1", - "10619:17:1", - "10675:4:1", - "10720:5:1", - "10772:9:1", - "10812:9:1", - "10852:6:1", - "10901:11:1" - ], - "names": [ - "collateralAsset", - "collateralFactor", - "decimals", - "liquidateCollateralFactor", - "liquidationFactor", - "name", - "price", - "priceFeed", - "supplyCap", - "symbol", - "totalSupply" - ], - "nodeType": "FunctionCall", - "src": "10366:596:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "functionReturnParameters": 1148, - "id": 1201, - "nodeType": "Return", - "src": "10353:609:1" - } - ] - }, - "functionSelector": "cbe293fa", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "collateralInfo", - "nameLocation": "10194:14:1", - "parameters": { - "id": 1144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "mutability": "mutable", - "name": "comet", - "nameLocation": "10215:5:1", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10209:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1139, - "name": "Comet", - "nameLocations": [ - "10209:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "10209:5:1" - }, - "referencedDeclaration": 598, - "src": "10209:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1143, - "mutability": "mutable", - "name": "index", - "nameLocation": "10228:5:1", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10222:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1142, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "10222:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "10208:26:1" - }, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1147, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10256:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset" - }, - "typeName": { - "id": 1146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1145, - "name": "CollateralAsset", - "nameLocations": [ - "10256:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "10256:15:1" - }, - "referencedDeclaration": 702, - "src": "10256:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "visibility": "internal" - } - ], - "src": "10255:24:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 1267, - "nodeType": "FunctionDefinition", - "src": "10971:925:1", - "body": { - "id": 1266, - "nodeType": "Block", - "src": "11151:745:1", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 1218, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11229:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1219, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11235:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11229:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1225, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11310:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "id": 1228, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "11327:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - ], - "id": 1227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1226, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11319:7:1", - "typeDescriptions": {} - } - }, - "id": 1229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11319:14:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 1221, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1222, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11283:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11277:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1220, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "11271:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11271:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11300:9:1", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 607, - "src": "11271:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11271:63:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1233, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "expression": { - "id": 1234, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11388:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1235, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11394:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11388:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1231, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "11353:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11359:19:1", - "memberName": "collateralBalanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 543, - "src": "11353:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", - "typeString": "function (address,address) view external returns (uint128)" - } - }, - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11353:57:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - { - "expression": { - "id": 1237, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11438:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1238, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11444:16:1", - "memberName": "collateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 683, - "src": "11438:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1239, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11480:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1240, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11486:8:1", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 685, - "src": "11480:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1241, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11531:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11537:25:1", - "memberName": "liquidateCollateralFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 689, - "src": "11531:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1243, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11591:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1244, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11597:17:1", - "memberName": "liquidationFactor", - "nodeType": "MemberAccess", - "referencedDeclaration": 691, - "src": "11591:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1245, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11630:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11636:4:1", - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 687, - "src": "11630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "id": 1247, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11657:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11663:5:1", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 693, - "src": "11657:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1249, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11689:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11695:9:1", - "memberName": "priceFeed", - "nodeType": "MemberAccess", - "referencedDeclaration": 695, - "src": "11689:15:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1251, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11725:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1252, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11731:9:1", - "memberName": "supplyCap", - "nodeType": "MemberAccess", - "referencedDeclaration": 697, - "src": "11725:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 1253, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11758:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11764:6:1", - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 699, - "src": "11758:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "id": 1255, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11793:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11799:11:1", - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 701, - "src": "11793:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1262, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11874:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 1258, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11841:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset memory" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11847:15:1", - "memberName": "collateralAsset", - "nodeType": "MemberAccess", - "referencedDeclaration": 681, - "src": "11841:21:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1257, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "11835:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11835:28:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$630", - "typeString": "contract ERC20" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11864:9:1", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 614, - "src": "11835:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11835:47:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1217, - "name": "CollateralAssetWithAccountState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "11170:31:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", - "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" - } - }, - "id": 1264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "11212:15:1", - "11260:9:1", - "11344:7:1", - "11420:16:1", - "11470:8:1", - "11504:25:1", - "11572:17:1", - "11624:4:1", - "11650:5:1", - "11678:9:1", - "11714:9:1", - "11750:6:1", - "11780:11:1", - "11820:13:1" - ], - "names": [ - "collateralAsset", - "allowance", - "balance", - "collateralFactor", - "decimals", - "liquidateCollateralFactor", - "liquidationFactor", - "name", - "price", - "priceFeed", - "supplyCap", - "symbol", - "totalSupply", - "walletBalance" - ], - "nodeType": "FunctionCall", - "src": "11170:721:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" - } - }, - "functionReturnParameters": 1216, - "id": 1265, - "nodeType": "Return", - "src": "11157:734:1" - } - ] - }, - "functionSelector": "c2815c0b", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "collateralInfoWithAccount", - "nameLocation": "10980:25:1", - "parameters": { - "id": 1212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1206, - "mutability": "mutable", - "name": "comet", - "nameLocation": "11017:5:1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11011:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1205, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1204, - "name": "Comet", - "nameLocations": [ - "11011:5:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "11011:5:1" - }, - "referencedDeclaration": 598, - "src": "11011:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1209, - "mutability": "mutable", - "name": "asset", - "nameLocation": "11051:5:1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11028:28:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", - "typeString": "struct CometQuery.CollateralAsset" - }, - "typeName": { - "id": 1208, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1207, - "name": "CollateralAsset", - "nameLocations": [ - "11028:15:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 702, - "src": "11028:15:1" - }, - "referencedDeclaration": 702, - "src": "11028:15:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", - "typeString": "struct CometQuery.CollateralAsset" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1211, - "mutability": "mutable", - "name": "account", - "nameLocation": "11078:7:1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11062:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1210, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11062:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "11005:84:1" - }, - "returnParameters": { - "id": 1216, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1215, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11111:38:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - }, - "typeName": { - "id": 1214, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1213, - "name": "CollateralAssetWithAccountState", - "nameLocations": [ - "11111:31:1" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 731, - "src": "11111:31:1" - }, - "referencedDeclaration": 731, - "src": "11111:31:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", - "typeString": "struct CometQuery.CollateralAssetWithAccountState" - } - }, - "visibility": "internal" - } - ], - "src": "11110:40:1" - }, - "scope": 1268, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CometQuery", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 1268 - ], - "name": "CometQuery", - "nameLocation": "4161:10:1", - "scope": 1269, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 1 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json deleted file mode 100644 index 83ed447..0000000 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/CToken.json +++ /dev/null @@ -1,5116 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOfUnderlying", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "borrowBalanceCurrent", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "comptroller", - "outputs": [ - { - "internalType": "contract Comptroller", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "exchangeRateCurrent", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "underlying", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "balanceOfUnderlying(address)": "3af9e669", - "borrowBalanceCurrent(address)": "17bfdfbc", - "comptroller()": "5fe3b567", - "exchangeRateCurrent()": "bd6d894d", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd", - "underlying()": "6f307dc3" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOfUnderlying\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"borrowBalanceCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"comptroller\",\"outputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exchangeRateCurrent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlying\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "balanceOfUnderlying", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "borrowBalanceCurrent", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "comptroller", - "outputs": [ - { - "internalType": "contract Comptroller", - "name": "", - "type": "address" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "exchangeRateCurrent", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "src", - "type": "address" - }, - { - "internalType": "address", - "name": "dst", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "underlying", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/CompoundV2Query.sol": "CToken" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - }, - "Sleuth/CompoundV2Query.sol": { - "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", - "urls": [ - "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", - "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 1625, - "exportedSymbols": { - "CToken": [ - 1347 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "CompoundV2Query": [ - 1624 - ], - "Comptroller": [ - 1423 - ], - "ERC20": [ - 630 - ], - "PriceOracle": [ - 1431 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3525:2", - "nodes": [ - { - "id": 1270, - "nodeType": "PragmaDirective", - "src": "39:24:2", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 1271, - "nodeType": "ImportDirective", - "src": "65:26:2", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 1625, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 1347, - "nodeType": "ContractDefinition", - "src": "93:723:2", - "nodes": [ - { - "id": 1277, - "nodeType": "FunctionDefinition", - "src": "114:54:2", - "functionSelector": "5fe3b567", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "comptroller", - "nameLocation": "123:11:2", - "parameters": { - "id": 1272, - "nodeType": "ParameterList", - "parameters": [], - "src": "134:2:2" - }, - "returnParameters": { - "id": 1276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1275, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "155:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1274, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1273, - "name": "Comptroller", - "nameLocations": [ - "155:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "155:11:2" - }, - "referencedDeclaration": 1423, - "src": "155:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - } - ], - "src": "154:13:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1286, - "nodeType": "FunctionDefinition", - "src": "172:68:2", - "functionSelector": "a9059cbb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "181:8:2", - "parameters": { - "id": 1282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1279, - "mutability": "mutable", - "name": "dst", - "nameLocation": "198:3:2", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "190:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "190:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1281, - "mutability": "mutable", - "name": "amount", - "nameLocation": "208:6:2", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "203:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1280, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "203:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "189:26:2" - }, - "returnParameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1284, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "234:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1283, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "234:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "233:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1297, - "nodeType": "FunctionDefinition", - "src": "244:85:2", - "functionSelector": "23b872dd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "253:12:2", - "parameters": { - "id": 1293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1288, - "mutability": "mutable", - "name": "src", - "nameLocation": "274:3:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "266:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "266:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1290, - "mutability": "mutable", - "name": "dst", - "nameLocation": "287:3:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "279:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "279:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1292, - "mutability": "mutable", - "name": "amount", - "nameLocation": "297:6:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "292:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "292:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "265:39:2" - }, - "returnParameters": { - "id": 1296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1295, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "323:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1294, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "323:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "322:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1306, - "nodeType": "FunctionDefinition", - "src": "333:71:2", - "functionSelector": "095ea7b3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nameLocation": "342:7:2", - "parameters": { - "id": 1302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1299, - "mutability": "mutable", - "name": "spender", - "nameLocation": "358:7:2", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "350:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1298, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1301, - "mutability": "mutable", - "name": "amount", - "nameLocation": "372:6:2", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "367:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1300, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "367:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "349:30:2" - }, - "returnParameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1304, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "398:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1303, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "398:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "397:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1315, - "nodeType": "FunctionDefinition", - "src": "408:80:2", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "417:9:2", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "mutability": "mutable", - "name": "owner", - "nameLocation": "435:5:2", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "427:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "427:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1310, - "mutability": "mutable", - "name": "spender", - "nameLocation": "450:7:2", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "442:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "426:32:2" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "482:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1312, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "482:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "481:6:2" - }, - "scope": 1347, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1322, - "nodeType": "FunctionDefinition", - "src": "492:63:2", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "501:9:2", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "mutability": "mutable", - "name": "owner", - "nameLocation": "519:5:2", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "511:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "510:15:2" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "549:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "549:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "548:6:2" - }, - "scope": 1347, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1329, - "nodeType": "FunctionDefinition", - "src": "559:68:2", - "functionSelector": "3af9e669", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOfUnderlying", - "nameLocation": "568:19:2", - "parameters": { - "id": 1325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1324, - "mutability": "mutable", - "name": "owner", - "nameLocation": "596:5:2", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "588:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "588:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "587:15:2" - }, - "returnParameters": { - "id": 1328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "621:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "621:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "620:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1336, - "nodeType": "FunctionDefinition", - "src": "631:71:2", - "functionSelector": "17bfdfbc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowBalanceCurrent", - "nameLocation": "640:20:2", - "parameters": { - "id": 1332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1331, - "mutability": "mutable", - "name": "account", - "nameLocation": "669:7:2", - "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "661:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "661:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "660:17:2" - }, - "returnParameters": { - "id": 1335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1334, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "696:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1333, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "696:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "695:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1341, - "nodeType": "FunctionDefinition", - "src": "706:55:2", - "functionSelector": "bd6d894d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exchangeRateCurrent", - "nameLocation": "715:19:2", - "parameters": { - "id": 1337, - "nodeType": "ParameterList", - "parameters": [], - "src": "734:2:2" - }, - "returnParameters": { - "id": 1340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1339, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "755:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "755:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "754:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1346, - "nodeType": "FunctionDefinition", - "src": "765:49:2", - "functionSelector": "6f307dc3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "underlying", - "nameLocation": "774:10:2", - "parameters": { - "id": 1342, - "nodeType": "ParameterList", - "parameters": [], - "src": "784:2:2" - }, - "returnParameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "805:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "805:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "804:9:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1347 - ], - "name": "CToken", - "nameLocation": "103:6:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1423, - "nodeType": "ContractDefinition", - "src": "818:668:2", - "nodes": [ - { - "id": 1356, - "nodeType": "FunctionDefinition", - "src": "844:61:2", - "functionSelector": "8e8f294b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "markets", - "nameLocation": "853:7:2", - "parameters": { - "id": 1350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1349, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "861:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "861:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "860:9:2" - }, - "returnParameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1352, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "893:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1351, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "893:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1354, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "899:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "899:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "892:12:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1362, - "nodeType": "FunctionDefinition", - "src": "909:54:2", - "functionSelector": "7dc0d1d0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "oracle", - "nameLocation": "918:6:2", - "parameters": { - "id": 1357, - "nodeType": "ParameterList", - "parameters": [], - "src": "924:2:2" - }, - "returnParameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1360, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "950:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1359, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1358, - "name": "PriceOracle", - "nameLocations": [ - "950:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "950:11:2" - }, - "referencedDeclaration": 1431, - "src": "950:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "949:13:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1373, - "nodeType": "FunctionDefinition", - "src": "967:79:2", - "functionSelector": "5ec88c79", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccountLiquidity", - "nameLocation": "976:19:2", - "parameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "996:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "996:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "995:9:2" - }, - "returnParameters": { - "id": 1372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1367, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1028:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1366, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1028:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1034:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1368, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1371, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1040:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1370, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1040:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1027:18:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1382, - "nodeType": "FunctionDefinition", - "src": "1050:70:2", - "functionSelector": "abfceffc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetsIn", - "nameLocation": "1059:11:2", - "parameters": { - "id": 1376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1375, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "1071:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1071:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1070:9:2" - }, - "returnParameters": { - "id": 1381, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1380, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "1103:15:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", - "typeString": "contract CToken[]" - }, - "typeName": { - "baseType": { - "id": 1378, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1377, - "name": "CToken", - "nameLocations": [ - "1103:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "1103:6:2" - }, - "referencedDeclaration": 1347, - "src": "1103:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1379, - "nodeType": "ArrayTypeName", - "src": "1103:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", - "typeString": "contract CToken[]" - } - }, - "visibility": "internal" - } - ], - "src": "1102:17:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1387, - "nodeType": "FunctionDefinition", - "src": "1124:37:2", - "functionSelector": "e9af0292", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "claimComp", - "nameLocation": "1133:9:2", - "parameters": { - "id": 1385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1387, - "src": "1143:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1143:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1142:9:2" - }, - "returnParameters": { - "id": 1386, - "nodeType": "ParameterList", - "parameters": [], - "src": "1160:0:2" - }, - "scope": 1423, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1394, - "nodeType": "FunctionDefinition", - "src": "1165:59:2", - "functionSelector": "cc7ebdc4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compAccrued", - "nameLocation": "1174:11:2", - "parameters": { - "id": 1390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1389, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1394, - "src": "1186:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1186:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1185:9:2" - }, - "returnParameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1392, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1394, - "src": "1218:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1218:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1217:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1401, - "nodeType": "FunctionDefinition", - "src": "1228:58:2", - "functionSelector": "1d7b33d7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSpeeds", - "nameLocation": "1237:10:2", - "parameters": { - "id": 1397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1396, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1401, - "src": "1248:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1248:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1247:9:2" - }, - "returnParameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1401, - "src": "1280:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1398, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1280:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1279:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1408, - "nodeType": "FunctionDefinition", - "src": "1290:64:2", - "functionSelector": "6aa875b5", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSupplySpeeds", - "nameLocation": "1299:16:2", - "parameters": { - "id": 1404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1403, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1408, - "src": "1316:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1316:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1315:9:2" - }, - "returnParameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1406, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1408, - "src": "1348:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1348:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1347:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1415, - "nodeType": "FunctionDefinition", - "src": "1358:64:2", - "functionSelector": "f4a433c0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compBorrowSpeeds", - "nameLocation": "1367:16:2", - "parameters": { - "id": 1411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1410, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1415, - "src": "1384:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1384:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1383:9:2" - }, - "returnParameters": { - "id": 1414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1415, - "src": "1416:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1412, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1416:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1415:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1422, - "nodeType": "FunctionDefinition", - "src": "1426:58:2", - "functionSelector": "4a584432", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowCaps", - "nameLocation": "1435:10:2", - "parameters": { - "id": 1418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1417, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1422, - "src": "1446:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1446:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1445:9:2" - }, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1422, - "src": "1478:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1478:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1477:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comptroller", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1423 - ], - "name": "Comptroller", - "nameLocation": "828:11:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1431, - "nodeType": "ContractDefinition", - "src": "1488:93:2", - "nodes": [ - { - "id": 1430, - "nodeType": "FunctionDefinition", - "src": "1514:65:2", - "functionSelector": "fe2c6198", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price", - "nameLocation": "1523:5:2", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "mutability": "mutable", - "name": "price", - "nameLocation": "1543:5:2", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "1529:19:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1424, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1529:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1528:21:2" - }, - "returnParameters": { - "id": 1429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1428, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "1573:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1427, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1573:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1572:6:2" - }, - "scope": 1431, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "PriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1431 - ], - "name": "PriceOracle", - "nameLocation": "1498:11:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1624, - "nodeType": "ContractDefinition", - "src": "1583:1980:2", - "nodes": [ - { - "id": 1450, - "nodeType": "StructDefinition", - "src": "1626:203:2", - "canonicalName": "CompoundV2Query.CTokenMetadata", - "members": [ - { - "constant": false, - "id": 1435, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1662:6:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1654:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1434, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1437, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1679:9:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1674:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1436, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1674:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1439, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1699:7:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1694:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1438, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1694:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1441, - "mutability": "mutable", - "name": "balanceUnderlying", - "nameLocation": "1717:17:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1712:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1712:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1443, - "mutability": "mutable", - "name": "borrowBalance", - "nameLocation": "1745:13:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1740:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1740:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1445, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "1769:16:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1764:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1444, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1764:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1447, - "mutability": "mutable", - "name": "exchangeRate", - "nameLocation": "1796:12:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1791:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1446, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1791:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1449, - "mutability": "mutable", - "name": "price", - "nameLocation": "1819:5:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1814:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1448, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1814:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenMetadata", - "nameLocation": "1633:14:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1460, - "nodeType": "StructDefinition", - "src": "1833:124:2", - "canonicalName": "CompoundV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 1452, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1865:15:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1860:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1860:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1903:6:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1886:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 1454, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1453, - "name": "CTokenMetadata", - "nameLocations": [ - "1886:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "1886:14:2" - }, - "referencedDeclaration": 1450, - "src": "1886:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1455, - "nodeType": "ArrayTypeName", - "src": "1886:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1942:10:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1915:37:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 1458, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1457, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1915:26:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1915:26:2" - }, - "referencedDeclaration": 789, - "src": "1915:26:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1840:13:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1466, - "nodeType": "StructDefinition", - "src": "1961:75:2", - "canonicalName": "CompoundV2Query.CTokenRequest", - "members": [ - { - "constant": false, - "id": 1463, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1995:6:2", - "nodeType": "VariableDeclaration", - "scope": 1466, - "src": "1988:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - }, - "typeName": { - "id": 1462, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1461, - "name": "CToken", - "nameLocations": [ - "1988:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "1988:6:2" - }, - "referencedDeclaration": 1347, - "src": "1988:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1465, - "mutability": "mutable", - "name": "priceOracleSymbol", - "nameLocation": "2014:17:2", - "nodeType": "VariableDeclaration", - "scope": 1466, - "src": "2007:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1464, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2007:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenRequest", - "nameLocation": "1968:13:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1554, - "nodeType": "FunctionDefinition", - "src": "2040:713:2", - "body": { - "id": 1553, - "nodeType": "Block", - "src": "2251:502:2", - "statements": [ - { - "assignments": [ - 1488 - ], - "declarations": [ - { - "constant": false, - "id": 1488, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2269:11:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2257:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1487, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1486, - "name": "PriceOracle", - "nameLocations": [ - "2257:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "2257:11:2" - }, - "referencedDeclaration": 1431, - "src": "2257:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 1492, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 1489, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "2283:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2295:6:2", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 1362, - "src": "2283:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", - "typeString": "function () view external returns (contract PriceOracle)" - } - }, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2283:20:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2257:46:2" - }, - { - "assignments": [ - 1494 - ], - "declarations": [ - { - "constant": false, - "id": 1494, - "mutability": "mutable", - "name": "cTokenCount", - "nameLocation": "2314:11:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2309:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1493, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2309:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1497, - "initialValue": { - "expression": { - "id": 1495, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "2328:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2336:6:2", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2328:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2309:33:2" - }, - { - "assignments": [ - 1502 - ], - "declarations": [ - { - "constant": false, - "id": 1502, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2372:6:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2348:30:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 1500, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1499, - "name": "CTokenMetadata", - "nameLocations": [ - "2348:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2348:14:2" - }, - "referencedDeclaration": 1450, - "src": "2348:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1501, - "nodeType": "ArrayTypeName", - "src": "2348:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 1509, - "initialValue": { - "arguments": [ - { - "id": 1507, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "2402:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2381:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 1504, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1503, - "name": "CTokenMetadata", - "nameLocations": [ - "2385:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2385:14:2" - }, - "referencedDeclaration": 1450, - "src": "2385:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1505, - "nodeType": "ArrayTypeName", - "src": "2385:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - } - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2381:33:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2348:66:2" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "2459:97:2", - "statements": [ - { - "expression": { - "id": 1532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1520, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "2467:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "id": 1522, - "indexExpression": { - "id": 1521, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2474:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2467:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1524, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "2494:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - { - "id": 1525, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1488, - "src": "2507:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - { - "baseExpression": { - "id": 1526, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "2520:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 1528, - "indexExpression": { - "id": 1527, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2528:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2520:10:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - } - }, - { - "id": 1529, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2532:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1530, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "2541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1523, - "name": "cTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "2479:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2479:70:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "src": "2467:82:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "id": 1533, - "nodeType": "ExpressionStatement", - "src": "2467:82:2" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1514, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2437:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 1515, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "2441:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2437:15:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1535, - "initializationExpression": { - "assignments": [ - 1511 - ], - "declarations": [ - { - "constant": false, - "id": 1511, - "mutability": "mutable", - "name": "i", - "nameLocation": "2430:1:2", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "2425:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1510, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2425:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1513, - "initialValue": { - "hexValue": "30", - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2434:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2425:10:2" - }, - "loopExpression": { - "expression": { - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2454:3:2", - "subExpression": { - "id": 1517, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2454:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "2454:3:2" - }, - "nodeType": "ForStatement", - "src": "2420:136:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1539, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1540, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "2641:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1537, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "2616:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2622:9:2", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2616:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2616:33:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1542, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "2667:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 1544, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "2712:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 1545, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2719:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2736:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2728:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 1546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2728:8:2", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2728:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1543, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2695:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2695:44:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - ], - "id": 1536, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "2575:13:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" - } - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2599:15:2", - "2659:6:2", - "2683:10:2" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState" - ], - "nodeType": "FunctionCall", - "src": "2575:173:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 1485, - "id": 1552, - "nodeType": "Return", - "src": "2562:186:2" - } - ] - }, - "functionSelector": "61d11a6e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "2049:15:2", - "parameters": { - "id": 1481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1469, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2082:11:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2070:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1468, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1467, - "name": "Comptroller", - "nameLocations": [ - "2070:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "2070:11:2" - }, - "referencedDeclaration": 1423, - "src": "2070:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1472, - "mutability": "mutable", - "name": "comet", - "nameLocation": "2105:5:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2099:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1471, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1470, - "name": "Comet", - "nameLocations": [ - "2099:5:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "2099:5:2" - }, - "referencedDeclaration": 598, - "src": "2099:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1476, - "mutability": "mutable", - "name": "cTokens", - "nameLocation": "2141:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2116:32:2", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 1474, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1473, - "name": "CTokenRequest", - "nameLocations": [ - "2116:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, - "src": "2116:13:2" - }, - "referencedDeclaration": 1466, - "src": "2116:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "id": 1475, - "nodeType": "ArrayTypeName", - "src": "2116:15:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1478, - "mutability": "mutable", - "name": "account", - "nameLocation": "2170:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2154:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1477, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2154:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1480, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2199:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2183:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1479, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2183:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2064:146:2" - }, - "returnParameters": { - "id": 1485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1484, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2229:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - }, - "typeName": { - "id": 1483, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1482, - "name": "QueryResponse", - "nameLocations": [ - "2229:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1460, - "src": "2229:13:2" - }, - "referencedDeclaration": 1460, - "src": "2229:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "2228:22:2" - }, - "scope": 1624, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1623, - "nodeType": "FunctionDefinition", - "src": "2757:804:2", - "body": { - "id": 1622, - "nodeType": "Block", - "src": "2980:581:2", - "statements": [ - { - "assignments": [ - 1575 - ], - "declarations": [ - { - "constant": false, - "id": 1575, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "2993:6:2", - "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "2986:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - }, - "typeName": { - "id": 1574, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1573, - "name": "CToken", - "nameLocations": [ - "2986:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "2986:6:2" - }, - "referencedDeclaration": 1347, - "src": "2986:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - } - ], - "id": 1578, - "initialValue": { - "expression": { - "id": 1576, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3002:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3016:6:2", - "memberName": "cToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1463, - "src": "3002:20:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2986:36:2" - }, - { - "assignments": [ - null, - 1580 - ], - "declarations": [ - null, - { - "constant": false, - "id": 1580, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "3036:16:2", - "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "3031:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1579, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3031:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1588, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 1585, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3084:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - ], - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1583, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3076:7:2", - "typeDescriptions": {} - } - }, - "id": 1586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3076:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1581, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "3056:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3068:7:2", - "memberName": "markets", - "nodeType": "MemberAccess", - "referencedDeclaration": 1356, - "src": "3056:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (address) view external returns (bool,uint256)" - } - }, - "id": 1587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3056:36:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3028:64:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1592, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3153:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - ], - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3145:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3145:7:2", - "typeDescriptions": {} - } - }, - "id": 1593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3145:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1596, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3198:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1597, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1567, - "src": "3207:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1594, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3181:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3188:9:2", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1315, - "src": "3181:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3181:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1601, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1599, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3234:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3241:9:2", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 1322, - "src": "3234:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3234:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1605, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3315:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1603, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3288:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3295:19:2", - "memberName": "balanceOfUnderlying", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "3288:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3288:35:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1609, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3376:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1607, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3348:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3355:20:2", - "memberName": "borrowBalanceCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1336, - "src": "3348:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3348:36:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1611, - "name": "collateralFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3412:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 1612, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3452:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3459:19:2", - "memberName": "exchangeRateCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1341, - "src": "3452:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () external returns (uint256)" - } - }, - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3452:28:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1617, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3515:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 1618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3529:17:2", - "memberName": "priceOracleSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1465, - "src": "3515:31:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 1615, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1560, - "src": "3497:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3509:5:2", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1430, - "src": "3497:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) view external returns (uint256)" - } - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3497:50:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1589, - "name": "CTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "3112:14:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3137:6:2", - "3170:9:2", - "3225:7:2", - "3269:17:2", - "3333:13:2", - "3394:16:2", - "3438:12:2", - "3490:5:2" - ], - "names": [ - "cToken", - "allowance", - "balance", - "balanceUnderlying", - "borrowBalance", - "collateralFactor", - "exchangeRate", - "price" - ], - "nodeType": "FunctionCall", - "src": "3112:444:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "functionReturnParameters": 1572, - "id": 1621, - "nodeType": "Return", - "src": "3099:457:2" - } - ] - }, - "functionSelector": "a72b45e0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "cTokenMetadata", - "nameLocation": "2766:14:2", - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2798:11:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2786:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1556, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1555, - "name": "Comptroller", - "nameLocations": [ - "2786:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "2786:11:2" - }, - "referencedDeclaration": 1423, - "src": "2786:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1560, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2827:11:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2815:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1559, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1558, - "name": "PriceOracle", - "nameLocations": [ - "2815:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "2815:11:2" - }, - "referencedDeclaration": 1431, - "src": "2815:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1563, - "mutability": "mutable", - "name": "cTokenRequest", - "nameLocation": "2865:13:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2844:34:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - }, - "typeName": { - "id": 1562, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1561, - "name": "CTokenRequest", - "nameLocations": [ - "2844:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, - "src": "2844:13:2" - }, - "referencedDeclaration": 1466, - "src": "2844:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "account", - "nameLocation": "2900:7:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2884:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2884:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2929:7:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2913:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2913:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2780:160:2" - }, - "returnParameters": { - "id": 1572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1571, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2957:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - }, - "typeName": { - "id": 1570, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1569, - "name": "CTokenMetadata", - "nameLocations": [ - "2957:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2957:14:2" - }, - "referencedDeclaration": 1450, - "src": "2957:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2956:23:2" - }, - "scope": 1624, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1432, - "name": "CometQuery", - "nameLocations": [ - "1611:10:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1611:10:2" - }, - "id": 1433, - "nodeType": "InheritanceSpecifier", - "src": "1611:10:2" - } - ], - "canonicalName": "CompoundV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 1624, - 1268 - ], - "name": "CompoundV2Query", - "nameLocation": "1592:15:2", - "scope": 1625, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 2 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json deleted file mode 100644 index 6828f3c..0000000 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comet.json +++ /dev/null @@ -1,4675 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"Comet\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0x154d43daddb92f92e68e29603b6190225e8cee3fa37b76caea153e03db5a7f9f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e953b431019347342d05d6bf507c6286fd1e5f03c7c4c9ded1c7e689c8358e0e\",\"dweb:/ipfs/QmQ5iFzyXAKaiJkCDK8R13Tgm6RorXZ19shjaRkrsqGkTM\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/CompoundV2Query.sol": "Comet" - }, - "libraries": {} - }, - "sources": { - "Sleuth/CompoundV2Query.sol": { - "keccak256": "0x154d43daddb92f92e68e29603b6190225e8cee3fa37b76caea153e03db5a7f9f", - "urls": [ - "bzz-raw://e953b431019347342d05d6bf507c6286fd1e5f03c7c4c9ded1c7e689c8358e0e", - "dweb:/ipfs/QmQ5iFzyXAKaiJkCDK8R13Tgm6RorXZ19shjaRkrsqGkTM" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 352, - "exportedSymbols": { - "CToken": [ - 77 - ], - "Comet": [ - 87 - ], - "CompoundV2Query": [ - 351 - ], - "Comptroller": [ - 163 - ], - "PriceOracle": [ - 171 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3437:0", - "nodes": [ - { - "id": 1, - "nodeType": "PragmaDirective", - "src": "39:24:0", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 77, - "nodeType": "ContractDefinition", - "src": "65:723:0", - "nodes": [ - { - "id": 7, - "nodeType": "FunctionDefinition", - "src": "86:54:0", - "functionSelector": "5fe3b567", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "comptroller", - "nameLocation": "95:11:0", - "parameters": { - "id": 2, - "nodeType": "ParameterList", - "parameters": [], - "src": "106:2:0" - }, - "returnParameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7, - "src": "127:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 4, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3, - "name": "Comptroller", - "nameLocations": [ - "127:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 163, - "src": "127:11:0" - }, - "referencedDeclaration": 163, - "src": "127:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - } - ], - "src": "126:13:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 16, - "nodeType": "FunctionDefinition", - "src": "144:68:0", - "functionSelector": "a9059cbb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "153:8:0", - "parameters": { - "id": 12, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9, - "mutability": "mutable", - "name": "dst", - "nameLocation": "170:3:0", - "nodeType": "VariableDeclaration", - "scope": 16, - "src": "162:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "162:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11, - "mutability": "mutable", - "name": "amount", - "nameLocation": "180:6:0", - "nodeType": "VariableDeclaration", - "scope": 16, - "src": "175:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "175:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "161:26:0" - }, - "returnParameters": { - "id": 15, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 14, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 16, - "src": "206:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 13, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "206:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "205:6:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 27, - "nodeType": "FunctionDefinition", - "src": "216:85:0", - "functionSelector": "23b872dd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "225:12:0", - "parameters": { - "id": 23, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18, - "mutability": "mutable", - "name": "src", - "nameLocation": "246:3:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "238:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 17, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "238:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "dst", - "nameLocation": "259:3:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "251:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "251:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 22, - "mutability": "mutable", - "name": "amount", - "nameLocation": "269:6:0", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "264:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "264:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "237:39:0" - }, - "returnParameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 25, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 27, - "src": "295:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 24, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "295:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "294:6:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 36, - "nodeType": "FunctionDefinition", - "src": "305:71:0", - "functionSelector": "095ea7b3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nameLocation": "314:7:0", - "parameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "mutability": "mutable", - "name": "spender", - "nameLocation": "330:7:0", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "322:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "322:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "amount", - "nameLocation": "344:6:0", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "339:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "339:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "321:30:0" - }, - "returnParameters": { - "id": 35, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "370:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 33, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "370:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "369:6:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 45, - "nodeType": "FunctionDefinition", - "src": "380:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "389:9:0", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "owner", - "nameLocation": "407:5:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "399:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "399:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "mutability": "mutable", - "name": "spender", - "nameLocation": "422:7:0", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "414:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 39, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "414:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "398:32:0" - }, - "returnParameters": { - "id": 44, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 43, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 45, - "src": "454:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "454:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "453:6:0" - }, - "scope": 77, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 52, - "nodeType": "FunctionDefinition", - "src": "464:63:0", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "473:9:0", - "parameters": { - "id": 48, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 47, - "mutability": "mutable", - "name": "owner", - "nameLocation": "491:5:0", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "483:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 46, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "483:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "482:15:0" - }, - "returnParameters": { - "id": 51, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "521:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 49, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "521:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "520:6:0" - }, - "scope": 77, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 59, - "nodeType": "FunctionDefinition", - "src": "531:68:0", - "functionSelector": "3af9e669", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOfUnderlying", - "nameLocation": "540:19:0", - "parameters": { - "id": 55, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 54, - "mutability": "mutable", - "name": "owner", - "nameLocation": "568:5:0", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "560:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "560:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "559:15:0" - }, - "returnParameters": { - "id": 58, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 57, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 59, - "src": "593:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 56, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "593:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "592:6:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 66, - "nodeType": "FunctionDefinition", - "src": "603:71:0", - "functionSelector": "17bfdfbc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowBalanceCurrent", - "nameLocation": "612:20:0", - "parameters": { - "id": 62, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 61, - "mutability": "mutable", - "name": "account", - "nameLocation": "641:7:0", - "nodeType": "VariableDeclaration", - "scope": 66, - "src": "633:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 60, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "633:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "632:17:0" - }, - "returnParameters": { - "id": 65, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 64, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 66, - "src": "668:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 63, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "668:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "667:6:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 71, - "nodeType": "FunctionDefinition", - "src": "678:55:0", - "functionSelector": "bd6d894d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exchangeRateCurrent", - "nameLocation": "687:19:0", - "parameters": { - "id": 67, - "nodeType": "ParameterList", - "parameters": [], - "src": "706:2:0" - }, - "returnParameters": { - "id": 70, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 69, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 71, - "src": "727:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 68, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "727:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "726:6:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 76, - "nodeType": "FunctionDefinition", - "src": "737:49:0", - "functionSelector": "6f307dc3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "underlying", - "nameLocation": "746:10:0", - "parameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "756:2:0" - }, - "returnParameters": { - "id": 75, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 74, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 76, - "src": "777:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 73, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "777:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "776:9:0" - }, - "scope": 77, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 77 - ], - "name": "CToken", - "nameLocation": "75:6:0", - "scope": 352, - "usedErrors": [] - }, - { - "id": 87, - "nodeType": "ContractDefinition", - "src": "790:102:0", - "nodes": [ - { - "id": 86, - "nodeType": "FunctionDefinition", - "src": "810:80:0", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "819:9:0", - "parameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 79, - "mutability": "mutable", - "name": "owner", - "nameLocation": "837:5:0", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "829:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 78, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "mutability": "mutable", - "name": "spender", - "nameLocation": "852:7:0", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "844:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "844:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "828:32:0" - }, - "returnParameters": { - "id": 85, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "884:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 83, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "884:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "883:6:0" - }, - "scope": 87, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comet", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 87 - ], - "name": "Comet", - "nameLocation": "800:5:0", - "scope": 352, - "usedErrors": [] - }, - { - "id": 163, - "nodeType": "ContractDefinition", - "src": "894:668:0", - "nodes": [ - { - "id": 96, - "nodeType": "FunctionDefinition", - "src": "920:61:0", - "functionSelector": "8e8f294b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "markets", - "nameLocation": "929:7:0", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 89, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "937:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 88, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "937:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "936:9:0" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 92, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "969:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 91, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "969:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 94, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "975:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 93, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "975:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "968:12:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 102, - "nodeType": "FunctionDefinition", - "src": "985:54:0", - "functionSelector": "7dc0d1d0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "oracle", - "nameLocation": "994:6:0", - "parameters": { - "id": 97, - "nodeType": "ParameterList", - "parameters": [], - "src": "1000:2:0" - }, - "returnParameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 102, - "src": "1026:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 99, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 98, - "name": "PriceOracle", - "nameLocations": [ - "1026:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 171, - "src": "1026:11:0" - }, - "referencedDeclaration": 171, - "src": "1026:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "1025:13:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 113, - "nodeType": "FunctionDefinition", - "src": "1043:79:0", - "functionSelector": "5ec88c79", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccountLiquidity", - "nameLocation": "1052:19:0", - "parameters": { - "id": 105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 104, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1072:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 103, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1072:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1071:9:0" - }, - "returnParameters": { - "id": 112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 107, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1104:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 106, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 109, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1110:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1110:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 113, - "src": "1116:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1116:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1103:18:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 122, - "nodeType": "FunctionDefinition", - "src": "1126:70:0", - "functionSelector": "abfceffc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetsIn", - "nameLocation": "1135:11:0", - "parameters": { - "id": 116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 115, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1147:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1147:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1146:9:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1179:15:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$77_$dyn_memory_ptr", - "typeString": "contract CToken[]" - }, - "typeName": { - "baseType": { - "id": 118, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 117, - "name": "CToken", - "nameLocations": [ - "1179:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 77, - "src": "1179:6:0" - }, - "referencedDeclaration": 77, - "src": "1179:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "id": 119, - "nodeType": "ArrayTypeName", - "src": "1179:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$77_$dyn_storage_ptr", - "typeString": "contract CToken[]" - } - }, - "visibility": "internal" - } - ], - "src": "1178:17:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 127, - "nodeType": "FunctionDefinition", - "src": "1200:37:0", - "functionSelector": "e9af0292", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "claimComp", - "nameLocation": "1209:9:0", - "parameters": { - "id": 125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "1219:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 123, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1219:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1218:9:0" - }, - "returnParameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [], - "src": "1236:0:0" - }, - "scope": 163, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 134, - "nodeType": "FunctionDefinition", - "src": "1241:59:0", - "functionSelector": "cc7ebdc4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compAccrued", - "nameLocation": "1250:11:0", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 134, - "src": "1262:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1262:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1261:9:0" - }, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 132, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 134, - "src": "1294:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 131, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1294:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1293:6:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 141, - "nodeType": "FunctionDefinition", - "src": "1304:58:0", - "functionSelector": "1d7b33d7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSpeeds", - "nameLocation": "1313:10:0", - "parameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 141, - "src": "1324:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1324:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1323:9:0" - }, - "returnParameters": { - "id": 140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 139, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 141, - "src": "1356:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1356:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1355:6:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 148, - "nodeType": "FunctionDefinition", - "src": "1366:64:0", - "functionSelector": "6aa875b5", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSupplySpeeds", - "nameLocation": "1375:16:0", - "parameters": { - "id": 144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 143, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "1392:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1392:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1391:9:0" - }, - "returnParameters": { - "id": 147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 146, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "1424:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 145, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1424:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1423:6:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 155, - "nodeType": "FunctionDefinition", - "src": "1434:64:0", - "functionSelector": "f4a433c0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compBorrowSpeeds", - "nameLocation": "1443:16:0", - "parameters": { - "id": 151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 150, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1460:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1460:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1459:9:0" - }, - "returnParameters": { - "id": 154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 153, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 155, - "src": "1492:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 152, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1492:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1491:6:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 162, - "nodeType": "FunctionDefinition", - "src": "1502:58:0", - "functionSelector": "4a584432", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowCaps", - "nameLocation": "1511:10:0", - "parameters": { - "id": 158, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 157, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 162, - "src": "1522:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1522:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1521:9:0" - }, - "returnParameters": { - "id": 161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 160, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 162, - "src": "1554:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 159, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1554:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1553:6:0" - }, - "scope": 163, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comptroller", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 163 - ], - "name": "Comptroller", - "nameLocation": "904:11:0", - "scope": 352, - "usedErrors": [] - }, - { - "id": 171, - "nodeType": "ContractDefinition", - "src": "1564:93:0", - "nodes": [ - { - "id": 170, - "nodeType": "FunctionDefinition", - "src": "1590:65:0", - "functionSelector": "fe2c6198", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price", - "nameLocation": "1599:5:0", - "parameters": { - "id": 166, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 165, - "mutability": "mutable", - "name": "price", - "nameLocation": "1619:5:0", - "nodeType": "VariableDeclaration", - "scope": 170, - "src": "1605:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 164, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1605:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1604:21:0" - }, - "returnParameters": { - "id": 169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 168, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 170, - "src": "1649:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 167, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1649:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1648:6:0" - }, - "scope": 171, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "PriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 171 - ], - "name": "PriceOracle", - "nameLocation": "1574:11:0", - "scope": 352, - "usedErrors": [] - }, - { - "id": 351, - "nodeType": "ContractDefinition", - "src": "1659:1816:0", - "nodes": [ - { - "id": 188, - "nodeType": "StructDefinition", - "src": "1688:203:0", - "canonicalName": "CompoundV2Query.CTokenMetadata", - "members": [ - { - "constant": false, - "id": 173, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1724:6:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1716:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 172, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1716:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 175, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1741:9:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1736:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 174, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1736:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 177, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1761:7:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1756:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 176, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1756:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 179, - "mutability": "mutable", - "name": "balanceUnderlying", - "nameLocation": "1779:17:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1774:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 178, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1774:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 181, - "mutability": "mutable", - "name": "borrowBalance", - "nameLocation": "1807:13:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1802:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 180, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1802:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 183, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "1831:16:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1826:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 182, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1826:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 185, - "mutability": "mutable", - "name": "exchangeRate", - "nameLocation": "1858:12:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1853:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 184, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1853:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 187, - "mutability": "mutable", - "name": "price", - "nameLocation": "1881:5:0", - "nodeType": "VariableDeclaration", - "scope": 188, - "src": "1876:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 186, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1876:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenMetadata", - "nameLocation": "1695:14:0", - "scope": 351, - "visibility": "public" - }, - { - "id": 195, - "nodeType": "StructDefinition", - "src": "1895:81:0", - "canonicalName": "CompoundV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 190, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1927:15:0", - "nodeType": "VariableDeclaration", - "scope": 195, - "src": "1922:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 189, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1922:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1965:6:0", - "nodeType": "VariableDeclaration", - "scope": 195, - "src": "1948:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 192, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 191, - "name": "CTokenMetadata", - "nameLocations": [ - "1948:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 188, - "src": "1948:14:0" - }, - "referencedDeclaration": 188, - "src": "1948:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 193, - "nodeType": "ArrayTypeName", - "src": "1948:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1902:13:0", - "scope": 351, - "visibility": "public" - }, - { - "id": 201, - "nodeType": "StructDefinition", - "src": "1980:75:0", - "canonicalName": "CompoundV2Query.CTokenRequest", - "members": [ - { - "constant": false, - "id": 198, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "2014:6:0", - "nodeType": "VariableDeclaration", - "scope": 201, - "src": "2007:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - }, - "typeName": { - "id": 197, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 196, - "name": "CToken", - "nameLocations": [ - "2007:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 77, - "src": "2007:6:0" - }, - "referencedDeclaration": 77, - "src": "2007:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "priceOracleSymbol", - "nameLocation": "2033:17:0", - "nodeType": "VariableDeclaration", - "scope": 201, - "src": "2026:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 199, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2026:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenRequest", - "nameLocation": "1987:13:0", - "scope": 351, - "visibility": "public" - }, - { - "id": 281, - "nodeType": "FunctionDefinition", - "src": "2059:606:0", - "body": { - "id": 280, - "nodeType": "Block", - "src": "2260:405:0", - "statements": [ - { - "assignments": [ - 223 - ], - "declarations": [ - { - "constant": false, - "id": 223, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2278:11:0", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "2266:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 222, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 221, - "name": "PriceOracle", - "nameLocations": [ - "2266:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 171, - "src": "2266:11:0" - }, - "referencedDeclaration": 171, - "src": "2266:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 227, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 224, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "2292:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - } - }, - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2304:6:0", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 102, - "src": "2292:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$171_$", - "typeString": "function () view external returns (contract PriceOracle)" - } - }, - "id": 226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2292:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2266:46:0" - }, - { - "assignments": [ - 229 - ], - "declarations": [ - { - "constant": false, - "id": 229, - "mutability": "mutable", - "name": "cTokenCount", - "nameLocation": "2323:11:0", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "2318:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 228, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2318:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 232, - "initialValue": { - "expression": { - "id": 230, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "2337:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2345:6:0", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2337:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2318:33:0" - }, - { - "assignments": [ - 237 - ], - "declarations": [ - { - "constant": false, - "id": 237, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2381:6:0", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "2357:30:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 235, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 234, - "name": "CTokenMetadata", - "nameLocations": [ - "2357:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 188, - "src": "2357:14:0" - }, - "referencedDeclaration": 188, - "src": "2357:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 236, - "nodeType": "ArrayTypeName", - "src": "2357:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 244, - "initialValue": { - "arguments": [ - { - "id": 242, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "2411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2390:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 239, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 238, - "name": "CTokenMetadata", - "nameLocations": [ - "2394:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 188, - "src": "2394:14:0" - }, - "referencedDeclaration": 188, - "src": "2394:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 240, - "nodeType": "ArrayTypeName", - "src": "2394:16:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - } - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2390:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2357:66:0" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "2468:97:0", - "statements": [ - { - "expression": { - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 255, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2476:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "id": 257, - "indexExpression": { - "id": 256, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "2483:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2476:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 259, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "2503:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - } - }, - { - "id": 260, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 223, - "src": "2516:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - } - }, - { - "baseExpression": { - "id": 261, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "2529:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 263, - "indexExpression": { - "id": 262, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "2537:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2529:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$201_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - } - }, - { - "id": 264, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2541:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 265, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2550:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - }, - { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - }, - { - "typeIdentifier": "t_struct$_CTokenRequest_$201_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 258, - "name": "cTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 350, - "src": "2488:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$163_$_t_contract$_PriceOracle_$171_$_t_struct$_CTokenRequest_$201_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$188_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2488:70:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "src": "2476:82:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "id": 268, - "nodeType": "ExpressionStatement", - "src": "2476:82:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 249, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "2446:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 250, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 229, - "src": "2450:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2446:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 270, - "initializationExpression": { - "assignments": [ - 246 - ], - "declarations": [ - { - "constant": false, - "id": 246, - "mutability": "mutable", - "name": "i", - "nameLocation": "2439:1:0", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "2434:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 245, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2434:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 248, - "initialValue": { - "hexValue": "30", - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2443:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2434:10:0" - }, - "loopExpression": { - "expression": { - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2463:3:0", - "subExpression": { - "id": 252, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "2463:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 254, - "nodeType": "ExpressionStatement", - "src": "2463:3:0" - }, - "nodeType": "ForStatement", - "src": "2429:136:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 274, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2625:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 275, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2634:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 272, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "2609:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$87", - "typeString": "contract Comet" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2615:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 86, - "src": "2609:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2609:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 277, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 237, - "src": "2652:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$188_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - ], - "id": 271, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "2577:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$195_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" - } - }, - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2592:15:0", - "2644:6:0" - ], - "names": [ - "migratorEnabled", - "tokens" - ], - "nodeType": "FunctionCall", - "src": "2577:83:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$195_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 220, - "id": 279, - "nodeType": "Return", - "src": "2570:90:0" - } - ] - }, - "functionSelector": "cf739a9e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "query", - "nameLocation": "2068:5:0", - "parameters": { - "id": 216, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 204, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2091:11:0", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "2079:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 203, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 202, - "name": "Comptroller", - "nameLocations": [ - "2079:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 163, - "src": "2079:11:0" - }, - "referencedDeclaration": 163, - "src": "2079:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 207, - "mutability": "mutable", - "name": "comet", - "nameLocation": "2114:5:0", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "2108:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$87", - "typeString": "contract Comet" - }, - "typeName": { - "id": 206, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 205, - "name": "Comet", - "nameLocations": [ - "2108:5:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 87, - "src": "2108:5:0" - }, - "referencedDeclaration": 87, - "src": "2108:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$87", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "cTokens", - "nameLocation": "2150:7:0", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "2125:32:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 209, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 208, - "name": "CTokenRequest", - "nameLocations": [ - "2125:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 201, - "src": "2125:13:0" - }, - "referencedDeclaration": 201, - "src": "2125:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$201_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "id": 210, - "nodeType": "ArrayTypeName", - "src": "2125:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$201_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 213, - "mutability": "mutable", - "name": "account", - "nameLocation": "2179:7:0", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "2163:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2163:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2208:7:0", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "2192:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2192:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2073:146:0" - }, - "returnParameters": { - "id": 220, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 219, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 281, - "src": "2238:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$195_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - }, - "typeName": { - "id": 218, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 217, - "name": "QueryResponse", - "nameLocations": [ - "2238:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 195, - "src": "2238:13:0" - }, - "referencedDeclaration": 195, - "src": "2238:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$195_storage_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "2237:22:0" - }, - "scope": 351, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 350, - "nodeType": "FunctionDefinition", - "src": "2669:804:0", - "body": { - "id": 349, - "nodeType": "Block", - "src": "2892:581:0", - "statements": [ - { - "assignments": [ - 302 - ], - "declarations": [ - { - "constant": false, - "id": 302, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "2905:6:0", - "nodeType": "VariableDeclaration", - "scope": 349, - "src": "2898:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - }, - "typeName": { - "id": 301, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 300, - "name": "CToken", - "nameLocations": [ - "2898:6:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 77, - "src": "2898:6:0" - }, - "referencedDeclaration": 77, - "src": "2898:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - } - ], - "id": 305, - "initialValue": { - "expression": { - "id": 303, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "2914:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$201_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2928:6:0", - "memberName": "cToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 198, - "src": "2914:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2898:36:0" - }, - { - "assignments": [ - null, - 307 - ], - "declarations": [ - null, - { - "constant": false, - "id": 307, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "2948:16:0", - "nodeType": "VariableDeclaration", - "scope": 349, - "src": "2943:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 306, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2943:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 315, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 312, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "2996:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - ], - "id": 311, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2988:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 310, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2988:7:0", - "typeDescriptions": {} - } - }, - "id": 313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2988:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 308, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 284, - "src": "2968:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2980:7:0", - "memberName": "markets", - "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2968:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (address) view external returns (bool,uint256)" - } - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2968:36:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2940:64:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 319, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "3065:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - ], - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3057:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 317, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:0", - "typeDescriptions": {} - } - }, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3057:15:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 323, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3110:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 324, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "3119:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 321, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "3093:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3100:9:0", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 45, - "src": "3093:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3093:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 328, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3163:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 326, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "3146:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3153:9:0", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 52, - "src": "3146:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3146:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 332, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3227:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 330, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "3200:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3207:19:0", - "memberName": "balanceOfUnderlying", - "nodeType": "MemberAccess", - "referencedDeclaration": 59, - "src": "3200:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3200:35:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 336, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 292, - "src": "3288:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 334, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "3260:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3267:20:0", - "memberName": "borrowBalanceCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 66, - "src": "3260:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3260:36:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 338, - "name": "collateralFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 307, - "src": "3324:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 339, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "3364:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$77", - "typeString": "contract CToken" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3371:19:0", - "memberName": "exchangeRateCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 71, - "src": "3364:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () external returns (uint256)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3364:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "expression": { - "id": 344, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 290, - "src": "3427:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$201_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3441:17:0", - "memberName": "priceOracleSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 200, - "src": "3427:31:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 342, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "3409:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - } - }, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3421:5:0", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 170, - "src": "3409:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) view external returns (uint256)" - } - }, - "id": 346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3409:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 316, - "name": "CTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 188, - "src": "3024:14:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$188_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3049:6:0", - "3082:9:0", - "3137:7:0", - "3181:17:0", - "3245:13:0", - "3306:16:0", - "3350:12:0", - "3402:5:0" - ], - "names": [ - "cToken", - "allowance", - "balance", - "balanceUnderlying", - "borrowBalance", - "collateralFactor", - "exchangeRate", - "price" - ], - "nodeType": "FunctionCall", - "src": "3024:444:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "functionReturnParameters": 299, - "id": 348, - "nodeType": "Return", - "src": "3011:457:0" - } - ] - }, - "functionSelector": "a72b45e0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "cTokenMetadata", - "nameLocation": "2678:14:0", - "parameters": { - "id": 295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 284, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2710:11:0", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2698:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 283, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 282, - "name": "Comptroller", - "nameLocations": [ - "2698:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 163, - "src": "2698:11:0" - }, - "referencedDeclaration": 163, - "src": "2698:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$163", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 287, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2739:11:0", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2727:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 286, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 285, - "name": "PriceOracle", - "nameLocations": [ - "2727:11:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 171, - "src": "2727:11:0" - }, - "referencedDeclaration": 171, - "src": "2727:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$171", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 290, - "mutability": "mutable", - "name": "cTokenRequest", - "nameLocation": "2777:13:0", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2756:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$201_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - }, - "typeName": { - "id": 289, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 288, - "name": "CTokenRequest", - "nameLocations": [ - "2756:13:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 201, - "src": "2756:13:0" - }, - "referencedDeclaration": 201, - "src": "2756:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$201_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 292, - "mutability": "mutable", - "name": "account", - "nameLocation": "2812:7:0", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2796:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2796:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 294, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2841:7:0", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2825:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 293, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2825:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2692:160:0" - }, - "returnParameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 350, - "src": "2869:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - }, - "typeName": { - "id": 297, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 296, - "name": "CTokenMetadata", - "nameLocations": [ - "2869:14:0" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 188, - "src": "2869:14:0" - }, - "referencedDeclaration": 188, - "src": "2869:14:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$188_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2868:23:0" - }, - "scope": 351, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CompoundV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 351 - ], - "name": "CompoundV2Query", - "nameLocation": "1668:15:0", - "scope": 352, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 0 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json deleted file mode 100644 index c0ba116..0000000 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/Comptroller.json +++ /dev/null @@ -1,5107 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "borrowCaps", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "claimComp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "compAccrued", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "compBorrowSpeeds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "compSpeeds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "compSupplySpeeds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getAccountLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "getAssetsIn", - "outputs": [ - { - "internalType": "contract CToken[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "markets", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oracle", - "outputs": [ - { - "internalType": "contract PriceOracle", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "borrowCaps(address)": "4a584432", - "claimComp(address)": "e9af0292", - "compAccrued(address)": "cc7ebdc4", - "compBorrowSpeeds(address)": "f4a433c0", - "compSpeeds(address)": "1d7b33d7", - "compSupplySpeeds(address)": "6aa875b5", - "getAccountLiquidity(address)": "5ec88c79", - "getAssetsIn(address)": "abfceffc", - "markets(address)": "8e8f294b", - "oracle()": "7dc0d1d0" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"borrowCaps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimComp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compAccrued\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compBorrowSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"compSupplySpeeds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAccountLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getAssetsIn\",\"outputs\":[{\"internalType\":\"contract CToken[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"markets\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract PriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"Comptroller\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "borrowCaps", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "claimComp" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "compAccrued", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "compBorrowSpeeds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "compSpeeds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "compSupplySpeeds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getAccountLiquidity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "getAssetsIn", - "outputs": [ - { - "internalType": "contract CToken[]", - "name": "", - "type": "address[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "markets", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "oracle", - "outputs": [ - { - "internalType": "contract PriceOracle", - "name": "", - "type": "address" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/CompoundV2Query.sol": "Comptroller" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - }, - "Sleuth/CompoundV2Query.sol": { - "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", - "urls": [ - "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", - "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 1625, - "exportedSymbols": { - "CToken": [ - 1347 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "CompoundV2Query": [ - 1624 - ], - "Comptroller": [ - 1423 - ], - "ERC20": [ - 630 - ], - "PriceOracle": [ - 1431 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3525:2", - "nodes": [ - { - "id": 1270, - "nodeType": "PragmaDirective", - "src": "39:24:2", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 1271, - "nodeType": "ImportDirective", - "src": "65:26:2", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 1625, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 1347, - "nodeType": "ContractDefinition", - "src": "93:723:2", - "nodes": [ - { - "id": 1277, - "nodeType": "FunctionDefinition", - "src": "114:54:2", - "functionSelector": "5fe3b567", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "comptroller", - "nameLocation": "123:11:2", - "parameters": { - "id": 1272, - "nodeType": "ParameterList", - "parameters": [], - "src": "134:2:2" - }, - "returnParameters": { - "id": 1276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1275, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "155:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1274, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1273, - "name": "Comptroller", - "nameLocations": [ - "155:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "155:11:2" - }, - "referencedDeclaration": 1423, - "src": "155:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - } - ], - "src": "154:13:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1286, - "nodeType": "FunctionDefinition", - "src": "172:68:2", - "functionSelector": "a9059cbb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "181:8:2", - "parameters": { - "id": 1282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1279, - "mutability": "mutable", - "name": "dst", - "nameLocation": "198:3:2", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "190:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "190:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1281, - "mutability": "mutable", - "name": "amount", - "nameLocation": "208:6:2", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "203:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1280, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "203:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "189:26:2" - }, - "returnParameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1284, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "234:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1283, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "234:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "233:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1297, - "nodeType": "FunctionDefinition", - "src": "244:85:2", - "functionSelector": "23b872dd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "253:12:2", - "parameters": { - "id": 1293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1288, - "mutability": "mutable", - "name": "src", - "nameLocation": "274:3:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "266:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "266:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1290, - "mutability": "mutable", - "name": "dst", - "nameLocation": "287:3:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "279:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "279:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1292, - "mutability": "mutable", - "name": "amount", - "nameLocation": "297:6:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "292:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "292:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "265:39:2" - }, - "returnParameters": { - "id": 1296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1295, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "323:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1294, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "323:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "322:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1306, - "nodeType": "FunctionDefinition", - "src": "333:71:2", - "functionSelector": "095ea7b3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nameLocation": "342:7:2", - "parameters": { - "id": 1302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1299, - "mutability": "mutable", - "name": "spender", - "nameLocation": "358:7:2", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "350:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1298, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1301, - "mutability": "mutable", - "name": "amount", - "nameLocation": "372:6:2", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "367:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1300, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "367:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "349:30:2" - }, - "returnParameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1304, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "398:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1303, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "398:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "397:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1315, - "nodeType": "FunctionDefinition", - "src": "408:80:2", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "417:9:2", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "mutability": "mutable", - "name": "owner", - "nameLocation": "435:5:2", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "427:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "427:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1310, - "mutability": "mutable", - "name": "spender", - "nameLocation": "450:7:2", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "442:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "426:32:2" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "482:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1312, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "482:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "481:6:2" - }, - "scope": 1347, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1322, - "nodeType": "FunctionDefinition", - "src": "492:63:2", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "501:9:2", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "mutability": "mutable", - "name": "owner", - "nameLocation": "519:5:2", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "511:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "510:15:2" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "549:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "549:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "548:6:2" - }, - "scope": 1347, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1329, - "nodeType": "FunctionDefinition", - "src": "559:68:2", - "functionSelector": "3af9e669", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOfUnderlying", - "nameLocation": "568:19:2", - "parameters": { - "id": 1325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1324, - "mutability": "mutable", - "name": "owner", - "nameLocation": "596:5:2", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "588:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "588:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "587:15:2" - }, - "returnParameters": { - "id": 1328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "621:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "621:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "620:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1336, - "nodeType": "FunctionDefinition", - "src": "631:71:2", - "functionSelector": "17bfdfbc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowBalanceCurrent", - "nameLocation": "640:20:2", - "parameters": { - "id": 1332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1331, - "mutability": "mutable", - "name": "account", - "nameLocation": "669:7:2", - "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "661:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "661:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "660:17:2" - }, - "returnParameters": { - "id": 1335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1334, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "696:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1333, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "696:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "695:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1341, - "nodeType": "FunctionDefinition", - "src": "706:55:2", - "functionSelector": "bd6d894d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exchangeRateCurrent", - "nameLocation": "715:19:2", - "parameters": { - "id": 1337, - "nodeType": "ParameterList", - "parameters": [], - "src": "734:2:2" - }, - "returnParameters": { - "id": 1340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1339, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "755:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "755:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "754:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1346, - "nodeType": "FunctionDefinition", - "src": "765:49:2", - "functionSelector": "6f307dc3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "underlying", - "nameLocation": "774:10:2", - "parameters": { - "id": 1342, - "nodeType": "ParameterList", - "parameters": [], - "src": "784:2:2" - }, - "returnParameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "805:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "805:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "804:9:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1347 - ], - "name": "CToken", - "nameLocation": "103:6:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1423, - "nodeType": "ContractDefinition", - "src": "818:668:2", - "nodes": [ - { - "id": 1356, - "nodeType": "FunctionDefinition", - "src": "844:61:2", - "functionSelector": "8e8f294b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "markets", - "nameLocation": "853:7:2", - "parameters": { - "id": 1350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1349, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "861:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "861:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "860:9:2" - }, - "returnParameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1352, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "893:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1351, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "893:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1354, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "899:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "899:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "892:12:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1362, - "nodeType": "FunctionDefinition", - "src": "909:54:2", - "functionSelector": "7dc0d1d0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "oracle", - "nameLocation": "918:6:2", - "parameters": { - "id": 1357, - "nodeType": "ParameterList", - "parameters": [], - "src": "924:2:2" - }, - "returnParameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1360, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "950:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1359, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1358, - "name": "PriceOracle", - "nameLocations": [ - "950:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "950:11:2" - }, - "referencedDeclaration": 1431, - "src": "950:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "949:13:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1373, - "nodeType": "FunctionDefinition", - "src": "967:79:2", - "functionSelector": "5ec88c79", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccountLiquidity", - "nameLocation": "976:19:2", - "parameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "996:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "996:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "995:9:2" - }, - "returnParameters": { - "id": 1372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1367, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1028:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1366, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1028:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1034:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1368, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1371, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1040:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1370, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1040:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1027:18:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1382, - "nodeType": "FunctionDefinition", - "src": "1050:70:2", - "functionSelector": "abfceffc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetsIn", - "nameLocation": "1059:11:2", - "parameters": { - "id": 1376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1375, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "1071:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1071:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1070:9:2" - }, - "returnParameters": { - "id": 1381, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1380, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "1103:15:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", - "typeString": "contract CToken[]" - }, - "typeName": { - "baseType": { - "id": 1378, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1377, - "name": "CToken", - "nameLocations": [ - "1103:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "1103:6:2" - }, - "referencedDeclaration": 1347, - "src": "1103:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1379, - "nodeType": "ArrayTypeName", - "src": "1103:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", - "typeString": "contract CToken[]" - } - }, - "visibility": "internal" - } - ], - "src": "1102:17:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1387, - "nodeType": "FunctionDefinition", - "src": "1124:37:2", - "functionSelector": "e9af0292", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "claimComp", - "nameLocation": "1133:9:2", - "parameters": { - "id": 1385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1387, - "src": "1143:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1143:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1142:9:2" - }, - "returnParameters": { - "id": 1386, - "nodeType": "ParameterList", - "parameters": [], - "src": "1160:0:2" - }, - "scope": 1423, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1394, - "nodeType": "FunctionDefinition", - "src": "1165:59:2", - "functionSelector": "cc7ebdc4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compAccrued", - "nameLocation": "1174:11:2", - "parameters": { - "id": 1390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1389, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1394, - "src": "1186:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1186:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1185:9:2" - }, - "returnParameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1392, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1394, - "src": "1218:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1218:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1217:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1401, - "nodeType": "FunctionDefinition", - "src": "1228:58:2", - "functionSelector": "1d7b33d7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSpeeds", - "nameLocation": "1237:10:2", - "parameters": { - "id": 1397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1396, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1401, - "src": "1248:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1248:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1247:9:2" - }, - "returnParameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1401, - "src": "1280:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1398, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1280:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1279:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1408, - "nodeType": "FunctionDefinition", - "src": "1290:64:2", - "functionSelector": "6aa875b5", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSupplySpeeds", - "nameLocation": "1299:16:2", - "parameters": { - "id": 1404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1403, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1408, - "src": "1316:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1316:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1315:9:2" - }, - "returnParameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1406, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1408, - "src": "1348:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1348:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1347:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1415, - "nodeType": "FunctionDefinition", - "src": "1358:64:2", - "functionSelector": "f4a433c0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compBorrowSpeeds", - "nameLocation": "1367:16:2", - "parameters": { - "id": 1411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1410, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1415, - "src": "1384:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1384:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1383:9:2" - }, - "returnParameters": { - "id": 1414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1415, - "src": "1416:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1412, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1416:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1415:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1422, - "nodeType": "FunctionDefinition", - "src": "1426:58:2", - "functionSelector": "4a584432", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowCaps", - "nameLocation": "1435:10:2", - "parameters": { - "id": 1418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1417, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1422, - "src": "1446:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1446:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1445:9:2" - }, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1422, - "src": "1478:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1478:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1477:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comptroller", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1423 - ], - "name": "Comptroller", - "nameLocation": "828:11:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1431, - "nodeType": "ContractDefinition", - "src": "1488:93:2", - "nodes": [ - { - "id": 1430, - "nodeType": "FunctionDefinition", - "src": "1514:65:2", - "functionSelector": "fe2c6198", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price", - "nameLocation": "1523:5:2", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "mutability": "mutable", - "name": "price", - "nameLocation": "1543:5:2", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "1529:19:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1424, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1529:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1528:21:2" - }, - "returnParameters": { - "id": 1429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1428, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "1573:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1427, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1573:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1572:6:2" - }, - "scope": 1431, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "PriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1431 - ], - "name": "PriceOracle", - "nameLocation": "1498:11:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1624, - "nodeType": "ContractDefinition", - "src": "1583:1980:2", - "nodes": [ - { - "id": 1450, - "nodeType": "StructDefinition", - "src": "1626:203:2", - "canonicalName": "CompoundV2Query.CTokenMetadata", - "members": [ - { - "constant": false, - "id": 1435, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1662:6:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1654:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1434, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1437, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1679:9:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1674:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1436, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1674:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1439, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1699:7:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1694:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1438, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1694:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1441, - "mutability": "mutable", - "name": "balanceUnderlying", - "nameLocation": "1717:17:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1712:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1712:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1443, - "mutability": "mutable", - "name": "borrowBalance", - "nameLocation": "1745:13:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1740:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1740:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1445, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "1769:16:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1764:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1444, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1764:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1447, - "mutability": "mutable", - "name": "exchangeRate", - "nameLocation": "1796:12:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1791:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1446, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1791:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1449, - "mutability": "mutable", - "name": "price", - "nameLocation": "1819:5:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1814:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1448, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1814:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenMetadata", - "nameLocation": "1633:14:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1460, - "nodeType": "StructDefinition", - "src": "1833:124:2", - "canonicalName": "CompoundV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 1452, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1865:15:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1860:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1860:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1903:6:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1886:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 1454, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1453, - "name": "CTokenMetadata", - "nameLocations": [ - "1886:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "1886:14:2" - }, - "referencedDeclaration": 1450, - "src": "1886:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1455, - "nodeType": "ArrayTypeName", - "src": "1886:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1942:10:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1915:37:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 1458, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1457, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1915:26:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1915:26:2" - }, - "referencedDeclaration": 789, - "src": "1915:26:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1840:13:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1466, - "nodeType": "StructDefinition", - "src": "1961:75:2", - "canonicalName": "CompoundV2Query.CTokenRequest", - "members": [ - { - "constant": false, - "id": 1463, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1995:6:2", - "nodeType": "VariableDeclaration", - "scope": 1466, - "src": "1988:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - }, - "typeName": { - "id": 1462, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1461, - "name": "CToken", - "nameLocations": [ - "1988:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "1988:6:2" - }, - "referencedDeclaration": 1347, - "src": "1988:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1465, - "mutability": "mutable", - "name": "priceOracleSymbol", - "nameLocation": "2014:17:2", - "nodeType": "VariableDeclaration", - "scope": 1466, - "src": "2007:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1464, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2007:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenRequest", - "nameLocation": "1968:13:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1554, - "nodeType": "FunctionDefinition", - "src": "2040:713:2", - "body": { - "id": 1553, - "nodeType": "Block", - "src": "2251:502:2", - "statements": [ - { - "assignments": [ - 1488 - ], - "declarations": [ - { - "constant": false, - "id": 1488, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2269:11:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2257:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1487, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1486, - "name": "PriceOracle", - "nameLocations": [ - "2257:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "2257:11:2" - }, - "referencedDeclaration": 1431, - "src": "2257:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 1492, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 1489, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "2283:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2295:6:2", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 1362, - "src": "2283:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", - "typeString": "function () view external returns (contract PriceOracle)" - } - }, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2283:20:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2257:46:2" - }, - { - "assignments": [ - 1494 - ], - "declarations": [ - { - "constant": false, - "id": 1494, - "mutability": "mutable", - "name": "cTokenCount", - "nameLocation": "2314:11:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2309:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1493, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2309:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1497, - "initialValue": { - "expression": { - "id": 1495, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "2328:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2336:6:2", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2328:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2309:33:2" - }, - { - "assignments": [ - 1502 - ], - "declarations": [ - { - "constant": false, - "id": 1502, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2372:6:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2348:30:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 1500, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1499, - "name": "CTokenMetadata", - "nameLocations": [ - "2348:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2348:14:2" - }, - "referencedDeclaration": 1450, - "src": "2348:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1501, - "nodeType": "ArrayTypeName", - "src": "2348:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 1509, - "initialValue": { - "arguments": [ - { - "id": 1507, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "2402:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2381:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 1504, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1503, - "name": "CTokenMetadata", - "nameLocations": [ - "2385:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2385:14:2" - }, - "referencedDeclaration": 1450, - "src": "2385:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1505, - "nodeType": "ArrayTypeName", - "src": "2385:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - } - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2381:33:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2348:66:2" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "2459:97:2", - "statements": [ - { - "expression": { - "id": 1532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1520, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "2467:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "id": 1522, - "indexExpression": { - "id": 1521, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2474:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2467:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1524, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "2494:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - { - "id": 1525, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1488, - "src": "2507:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - { - "baseExpression": { - "id": 1526, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "2520:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 1528, - "indexExpression": { - "id": 1527, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2528:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2520:10:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - } - }, - { - "id": 1529, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2532:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1530, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "2541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1523, - "name": "cTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "2479:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2479:70:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "src": "2467:82:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "id": 1533, - "nodeType": "ExpressionStatement", - "src": "2467:82:2" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1514, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2437:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 1515, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "2441:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2437:15:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1535, - "initializationExpression": { - "assignments": [ - 1511 - ], - "declarations": [ - { - "constant": false, - "id": 1511, - "mutability": "mutable", - "name": "i", - "nameLocation": "2430:1:2", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "2425:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1510, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2425:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1513, - "initialValue": { - "hexValue": "30", - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2434:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2425:10:2" - }, - "loopExpression": { - "expression": { - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2454:3:2", - "subExpression": { - "id": 1517, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2454:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "2454:3:2" - }, - "nodeType": "ForStatement", - "src": "2420:136:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1539, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1540, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "2641:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1537, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "2616:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2622:9:2", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2616:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2616:33:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1542, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "2667:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 1544, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "2712:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 1545, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2719:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2736:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2728:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 1546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2728:8:2", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2728:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1543, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2695:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2695:44:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - ], - "id": 1536, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "2575:13:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" - } - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2599:15:2", - "2659:6:2", - "2683:10:2" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState" - ], - "nodeType": "FunctionCall", - "src": "2575:173:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 1485, - "id": 1552, - "nodeType": "Return", - "src": "2562:186:2" - } - ] - }, - "functionSelector": "61d11a6e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "2049:15:2", - "parameters": { - "id": 1481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1469, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2082:11:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2070:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1468, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1467, - "name": "Comptroller", - "nameLocations": [ - "2070:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "2070:11:2" - }, - "referencedDeclaration": 1423, - "src": "2070:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1472, - "mutability": "mutable", - "name": "comet", - "nameLocation": "2105:5:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2099:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1471, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1470, - "name": "Comet", - "nameLocations": [ - "2099:5:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "2099:5:2" - }, - "referencedDeclaration": 598, - "src": "2099:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1476, - "mutability": "mutable", - "name": "cTokens", - "nameLocation": "2141:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2116:32:2", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 1474, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1473, - "name": "CTokenRequest", - "nameLocations": [ - "2116:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, - "src": "2116:13:2" - }, - "referencedDeclaration": 1466, - "src": "2116:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "id": 1475, - "nodeType": "ArrayTypeName", - "src": "2116:15:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1478, - "mutability": "mutable", - "name": "account", - "nameLocation": "2170:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2154:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1477, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2154:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1480, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2199:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2183:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1479, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2183:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2064:146:2" - }, - "returnParameters": { - "id": 1485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1484, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2229:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - }, - "typeName": { - "id": 1483, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1482, - "name": "QueryResponse", - "nameLocations": [ - "2229:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1460, - "src": "2229:13:2" - }, - "referencedDeclaration": 1460, - "src": "2229:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "2228:22:2" - }, - "scope": 1624, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1623, - "nodeType": "FunctionDefinition", - "src": "2757:804:2", - "body": { - "id": 1622, - "nodeType": "Block", - "src": "2980:581:2", - "statements": [ - { - "assignments": [ - 1575 - ], - "declarations": [ - { - "constant": false, - "id": 1575, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "2993:6:2", - "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "2986:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - }, - "typeName": { - "id": 1574, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1573, - "name": "CToken", - "nameLocations": [ - "2986:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "2986:6:2" - }, - "referencedDeclaration": 1347, - "src": "2986:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - } - ], - "id": 1578, - "initialValue": { - "expression": { - "id": 1576, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3002:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3016:6:2", - "memberName": "cToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1463, - "src": "3002:20:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2986:36:2" - }, - { - "assignments": [ - null, - 1580 - ], - "declarations": [ - null, - { - "constant": false, - "id": 1580, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "3036:16:2", - "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "3031:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1579, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3031:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1588, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 1585, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3084:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - ], - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1583, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3076:7:2", - "typeDescriptions": {} - } - }, - "id": 1586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3076:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1581, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "3056:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3068:7:2", - "memberName": "markets", - "nodeType": "MemberAccess", - "referencedDeclaration": 1356, - "src": "3056:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (address) view external returns (bool,uint256)" - } - }, - "id": 1587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3056:36:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3028:64:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1592, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3153:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - ], - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3145:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3145:7:2", - "typeDescriptions": {} - } - }, - "id": 1593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3145:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1596, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3198:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1597, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1567, - "src": "3207:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1594, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3181:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3188:9:2", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1315, - "src": "3181:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3181:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1601, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1599, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3234:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3241:9:2", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 1322, - "src": "3234:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3234:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1605, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3315:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1603, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3288:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3295:19:2", - "memberName": "balanceOfUnderlying", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "3288:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3288:35:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1609, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3376:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1607, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3348:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3355:20:2", - "memberName": "borrowBalanceCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1336, - "src": "3348:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3348:36:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1611, - "name": "collateralFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3412:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 1612, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3452:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3459:19:2", - "memberName": "exchangeRateCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1341, - "src": "3452:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () external returns (uint256)" - } - }, - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3452:28:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1617, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3515:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 1618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3529:17:2", - "memberName": "priceOracleSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1465, - "src": "3515:31:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 1615, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1560, - "src": "3497:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3509:5:2", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1430, - "src": "3497:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) view external returns (uint256)" - } - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3497:50:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1589, - "name": "CTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "3112:14:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3137:6:2", - "3170:9:2", - "3225:7:2", - "3269:17:2", - "3333:13:2", - "3394:16:2", - "3438:12:2", - "3490:5:2" - ], - "names": [ - "cToken", - "allowance", - "balance", - "balanceUnderlying", - "borrowBalance", - "collateralFactor", - "exchangeRate", - "price" - ], - "nodeType": "FunctionCall", - "src": "3112:444:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "functionReturnParameters": 1572, - "id": 1621, - "nodeType": "Return", - "src": "3099:457:2" - } - ] - }, - "functionSelector": "a72b45e0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "cTokenMetadata", - "nameLocation": "2766:14:2", - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2798:11:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2786:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1556, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1555, - "name": "Comptroller", - "nameLocations": [ - "2786:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "2786:11:2" - }, - "referencedDeclaration": 1423, - "src": "2786:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1560, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2827:11:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2815:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1559, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1558, - "name": "PriceOracle", - "nameLocations": [ - "2815:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "2815:11:2" - }, - "referencedDeclaration": 1431, - "src": "2815:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1563, - "mutability": "mutable", - "name": "cTokenRequest", - "nameLocation": "2865:13:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2844:34:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - }, - "typeName": { - "id": 1562, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1561, - "name": "CTokenRequest", - "nameLocations": [ - "2844:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, - "src": "2844:13:2" - }, - "referencedDeclaration": 1466, - "src": "2844:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "account", - "nameLocation": "2900:7:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2884:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2884:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2929:7:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2913:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2913:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2780:160:2" - }, - "returnParameters": { - "id": 1572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1571, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2957:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - }, - "typeName": { - "id": 1570, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1569, - "name": "CTokenMetadata", - "nameLocations": [ - "2957:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2957:14:2" - }, - "referencedDeclaration": 1450, - "src": "2957:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2956:23:2" - }, - "scope": 1624, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1432, - "name": "CometQuery", - "nameLocations": [ - "1611:10:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1611:10:2" - }, - "id": 1433, - "nodeType": "InheritanceSpecifier", - "src": "1611:10:2" - } - ], - "canonicalName": "CompoundV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 1624, - 1268 - ], - "name": "CompoundV2Query", - "nameLocation": "1592:15:2", - "scope": 1625, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 2 -} \ No newline at end of file diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json deleted file mode 100644 index e257ccd..0000000 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/PriceOracle.json +++ /dev/null @@ -1,4751 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "price", - "type": "string" - } - ], - "name": "price", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x", - "sourceMap": "", - "linkReferences": {} - }, - "methodIdentifiers": { - "price(string)": "fe2c6198" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"price\",\"type\":\"string\"}],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"PriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "price", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function", - "name": "price", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "Sleuth/CompoundV2Query.sol": "PriceOracle" - }, - "libraries": {}, - "viaIR": true - }, - "sources": { - "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", - "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" - ], - "license": "UNLICENSED" - }, - "Sleuth/CompoundV2Query.sol": { - "keccak256": "0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3", - "urls": [ - "bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020", - "dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR" - ], - "license": "UNLICENSED" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 1625, - "exportedSymbols": { - "CToken": [ - 1347 - ], - "Comet": [ - 598 - ], - "CometQuery": [ - 1268 - ], - "CompoundV2Query": [ - 1624 - ], - "Comptroller": [ - 1423 - ], - "ERC20": [ - 630 - ], - "PriceOracle": [ - 1431 - ] - }, - "nodeType": "SourceUnit", - "src": "39:3525:2", - "nodes": [ - { - "id": 1270, - "nodeType": "PragmaDirective", - "src": "39:24:2", - "literals": [ - "solidity", - "^", - "0.8", - ".16" - ] - }, - { - "id": 1271, - "nodeType": "ImportDirective", - "src": "65:26:2", - "absolutePath": "Sleuth/CometQuery.sol", - "file": "./CometQuery.sol", - "nameLocation": "-1:-1:-1", - "scope": 1625, - "sourceUnit": 1269, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 1347, - "nodeType": "ContractDefinition", - "src": "93:723:2", - "nodes": [ - { - "id": 1277, - "nodeType": "FunctionDefinition", - "src": "114:54:2", - "functionSelector": "5fe3b567", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "comptroller", - "nameLocation": "123:11:2", - "parameters": { - "id": 1272, - "nodeType": "ParameterList", - "parameters": [], - "src": "134:2:2" - }, - "returnParameters": { - "id": 1276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1275, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "155:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1274, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1273, - "name": "Comptroller", - "nameLocations": [ - "155:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "155:11:2" - }, - "referencedDeclaration": 1423, - "src": "155:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - } - ], - "src": "154:13:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1286, - "nodeType": "FunctionDefinition", - "src": "172:68:2", - "functionSelector": "a9059cbb", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "181:8:2", - "parameters": { - "id": 1282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1279, - "mutability": "mutable", - "name": "dst", - "nameLocation": "198:3:2", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "190:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "190:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1281, - "mutability": "mutable", - "name": "amount", - "nameLocation": "208:6:2", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "203:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1280, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "203:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "189:26:2" - }, - "returnParameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1284, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "234:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1283, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "234:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "233:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1297, - "nodeType": "FunctionDefinition", - "src": "244:85:2", - "functionSelector": "23b872dd", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "253:12:2", - "parameters": { - "id": 1293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1288, - "mutability": "mutable", - "name": "src", - "nameLocation": "274:3:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "266:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "266:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1290, - "mutability": "mutable", - "name": "dst", - "nameLocation": "287:3:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "279:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "279:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1292, - "mutability": "mutable", - "name": "amount", - "nameLocation": "297:6:2", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "292:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "292:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "265:39:2" - }, - "returnParameters": { - "id": 1296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1295, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1297, - "src": "323:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1294, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "323:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "322:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1306, - "nodeType": "FunctionDefinition", - "src": "333:71:2", - "functionSelector": "095ea7b3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nameLocation": "342:7:2", - "parameters": { - "id": 1302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1299, - "mutability": "mutable", - "name": "spender", - "nameLocation": "358:7:2", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "350:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1298, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1301, - "mutability": "mutable", - "name": "amount", - "nameLocation": "372:6:2", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "367:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1300, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "367:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "349:30:2" - }, - "returnParameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1304, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "398:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1303, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "398:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "397:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1315, - "nodeType": "FunctionDefinition", - "src": "408:80:2", - "functionSelector": "dd62ed3e", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "417:9:2", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "mutability": "mutable", - "name": "owner", - "nameLocation": "435:5:2", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "427:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "427:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1310, - "mutability": "mutable", - "name": "spender", - "nameLocation": "450:7:2", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "442:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "426:32:2" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "482:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1312, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "482:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "481:6:2" - }, - "scope": 1347, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1322, - "nodeType": "FunctionDefinition", - "src": "492:63:2", - "functionSelector": "70a08231", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "501:9:2", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "mutability": "mutable", - "name": "owner", - "nameLocation": "519:5:2", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "511:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "510:15:2" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "549:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "549:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "548:6:2" - }, - "scope": 1347, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1329, - "nodeType": "FunctionDefinition", - "src": "559:68:2", - "functionSelector": "3af9e669", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOfUnderlying", - "nameLocation": "568:19:2", - "parameters": { - "id": 1325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1324, - "mutability": "mutable", - "name": "owner", - "nameLocation": "596:5:2", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "588:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "588:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "587:15:2" - }, - "returnParameters": { - "id": 1328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "621:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1326, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "621:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "620:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1336, - "nodeType": "FunctionDefinition", - "src": "631:71:2", - "functionSelector": "17bfdfbc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowBalanceCurrent", - "nameLocation": "640:20:2", - "parameters": { - "id": 1332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1331, - "mutability": "mutable", - "name": "account", - "nameLocation": "669:7:2", - "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "661:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "661:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "660:17:2" - }, - "returnParameters": { - "id": 1335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1334, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "696:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1333, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "696:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "695:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1341, - "nodeType": "FunctionDefinition", - "src": "706:55:2", - "functionSelector": "bd6d894d", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exchangeRateCurrent", - "nameLocation": "715:19:2", - "parameters": { - "id": 1337, - "nodeType": "ParameterList", - "parameters": [], - "src": "734:2:2" - }, - "returnParameters": { - "id": 1340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1339, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1341, - "src": "755:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1338, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "755:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "754:6:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1346, - "nodeType": "FunctionDefinition", - "src": "765:49:2", - "functionSelector": "6f307dc3", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "underlying", - "nameLocation": "774:10:2", - "parameters": { - "id": 1342, - "nodeType": "ParameterList", - "parameters": [], - "src": "784:2:2" - }, - "returnParameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "805:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "805:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "804:9:2" - }, - "scope": 1347, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "CToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1347 - ], - "name": "CToken", - "nameLocation": "103:6:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1423, - "nodeType": "ContractDefinition", - "src": "818:668:2", - "nodes": [ - { - "id": 1356, - "nodeType": "FunctionDefinition", - "src": "844:61:2", - "functionSelector": "8e8f294b", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "markets", - "nameLocation": "853:7:2", - "parameters": { - "id": 1350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1349, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "861:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "861:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "860:9:2" - }, - "returnParameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1352, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "893:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1351, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "893:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1354, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "899:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "899:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "892:12:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1362, - "nodeType": "FunctionDefinition", - "src": "909:54:2", - "functionSelector": "7dc0d1d0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "oracle", - "nameLocation": "918:6:2", - "parameters": { - "id": 1357, - "nodeType": "ParameterList", - "parameters": [], - "src": "924:2:2" - }, - "returnParameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1360, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "950:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1359, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1358, - "name": "PriceOracle", - "nameLocations": [ - "950:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "950:11:2" - }, - "referencedDeclaration": 1431, - "src": "950:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "src": "949:13:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1373, - "nodeType": "FunctionDefinition", - "src": "967:79:2", - "functionSelector": "5ec88c79", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccountLiquidity", - "nameLocation": "976:19:2", - "parameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "996:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "996:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "995:9:2" - }, - "returnParameters": { - "id": 1372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1367, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1028:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1366, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1028:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1034:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1368, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1034:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1371, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1373, - "src": "1040:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1370, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1040:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1027:18:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1382, - "nodeType": "FunctionDefinition", - "src": "1050:70:2", - "functionSelector": "abfceffc", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAssetsIn", - "nameLocation": "1059:11:2", - "parameters": { - "id": 1376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1375, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "1071:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1071:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1070:9:2" - }, - "returnParameters": { - "id": 1381, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1380, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "1103:15:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", - "typeString": "contract CToken[]" - }, - "typeName": { - "baseType": { - "id": 1378, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1377, - "name": "CToken", - "nameLocations": [ - "1103:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "1103:6:2" - }, - "referencedDeclaration": 1347, - "src": "1103:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1379, - "nodeType": "ArrayTypeName", - "src": "1103:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", - "typeString": "contract CToken[]" - } - }, - "visibility": "internal" - } - ], - "src": "1102:17:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1387, - "nodeType": "FunctionDefinition", - "src": "1124:37:2", - "functionSelector": "e9af0292", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "claimComp", - "nameLocation": "1133:9:2", - "parameters": { - "id": 1385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1387, - "src": "1143:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1143:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1142:9:2" - }, - "returnParameters": { - "id": 1386, - "nodeType": "ParameterList", - "parameters": [], - "src": "1160:0:2" - }, - "scope": 1423, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1394, - "nodeType": "FunctionDefinition", - "src": "1165:59:2", - "functionSelector": "cc7ebdc4", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compAccrued", - "nameLocation": "1174:11:2", - "parameters": { - "id": 1390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1389, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1394, - "src": "1186:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1186:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1185:9:2" - }, - "returnParameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1392, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1394, - "src": "1218:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1218:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1217:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1401, - "nodeType": "FunctionDefinition", - "src": "1228:58:2", - "functionSelector": "1d7b33d7", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSpeeds", - "nameLocation": "1237:10:2", - "parameters": { - "id": 1397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1396, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1401, - "src": "1248:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1395, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1248:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1247:9:2" - }, - "returnParameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1401, - "src": "1280:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1398, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1280:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1279:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1408, - "nodeType": "FunctionDefinition", - "src": "1290:64:2", - "functionSelector": "6aa875b5", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compSupplySpeeds", - "nameLocation": "1299:16:2", - "parameters": { - "id": 1404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1403, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1408, - "src": "1316:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1316:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1315:9:2" - }, - "returnParameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1406, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1408, - "src": "1348:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1348:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1347:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1415, - "nodeType": "FunctionDefinition", - "src": "1358:64:2", - "functionSelector": "f4a433c0", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "compBorrowSpeeds", - "nameLocation": "1367:16:2", - "parameters": { - "id": 1411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1410, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1415, - "src": "1384:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1384:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1383:9:2" - }, - "returnParameters": { - "id": 1414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1413, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1415, - "src": "1416:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1412, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1416:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1415:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 1422, - "nodeType": "FunctionDefinition", - "src": "1426:58:2", - "functionSelector": "4a584432", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "borrowCaps", - "nameLocation": "1435:10:2", - "parameters": { - "id": 1418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1417, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1422, - "src": "1446:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1446:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1445:9:2" - }, - "returnParameters": { - "id": 1421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1420, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1422, - "src": "1478:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1478:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1477:6:2" - }, - "scope": 1423, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "Comptroller", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1423 - ], - "name": "Comptroller", - "nameLocation": "828:11:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1431, - "nodeType": "ContractDefinition", - "src": "1488:93:2", - "nodes": [ - { - "id": 1430, - "nodeType": "FunctionDefinition", - "src": "1514:65:2", - "functionSelector": "fe2c6198", - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "price", - "nameLocation": "1523:5:2", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "mutability": "mutable", - "name": "price", - "nameLocation": "1543:5:2", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "1529:19:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1424, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1529:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1528:21:2" - }, - "returnParameters": { - "id": 1429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1428, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "1573:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1427, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1573:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1572:6:2" - }, - "scope": 1431, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "PriceOracle", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "linearizedBaseContracts": [ - 1431 - ], - "name": "PriceOracle", - "nameLocation": "1498:11:2", - "scope": 1625, - "usedErrors": [] - }, - { - "id": 1624, - "nodeType": "ContractDefinition", - "src": "1583:1980:2", - "nodes": [ - { - "id": 1450, - "nodeType": "StructDefinition", - "src": "1626:203:2", - "canonicalName": "CompoundV2Query.CTokenMetadata", - "members": [ - { - "constant": false, - "id": 1435, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1662:6:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1654:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1434, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1654:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1437, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1679:9:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1674:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1436, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1674:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1439, - "mutability": "mutable", - "name": "balance", - "nameLocation": "1699:7:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1694:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1438, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1694:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1441, - "mutability": "mutable", - "name": "balanceUnderlying", - "nameLocation": "1717:17:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1712:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1712:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1443, - "mutability": "mutable", - "name": "borrowBalance", - "nameLocation": "1745:13:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1740:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1740:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1445, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "1769:16:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1764:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1444, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1764:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1447, - "mutability": "mutable", - "name": "exchangeRate", - "nameLocation": "1796:12:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1791:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1446, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1791:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1449, - "mutability": "mutable", - "name": "price", - "nameLocation": "1819:5:2", - "nodeType": "VariableDeclaration", - "scope": 1450, - "src": "1814:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1448, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1814:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenMetadata", - "nameLocation": "1633:14:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1460, - "nodeType": "StructDefinition", - "src": "1833:124:2", - "canonicalName": "CompoundV2Query.QueryResponse", - "members": [ - { - "constant": false, - "id": 1452, - "mutability": "mutable", - "name": "migratorEnabled", - "nameLocation": "1865:15:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1860:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1860:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1903:6:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1886:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 1454, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1453, - "name": "CTokenMetadata", - "nameLocations": [ - "1886:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "1886:14:2" - }, - "referencedDeclaration": 1450, - "src": "1886:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1455, - "nodeType": "ArrayTypeName", - "src": "1886:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "mutability": "mutable", - "name": "cometState", - "nameLocation": "1942:10:2", - "nodeType": "VariableDeclaration", - "scope": 1460, - "src": "1915:37:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - }, - "typeName": { - "id": 1458, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1457, - "name": "CometStateWithAccountState", - "nameLocations": [ - "1915:26:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "1915:26:2" - }, - "referencedDeclaration": 789, - "src": "1915:26:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState" - } - }, - "visibility": "internal" - } - ], - "name": "QueryResponse", - "nameLocation": "1840:13:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1466, - "nodeType": "StructDefinition", - "src": "1961:75:2", - "canonicalName": "CompoundV2Query.CTokenRequest", - "members": [ - { - "constant": false, - "id": 1463, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "1995:6:2", - "nodeType": "VariableDeclaration", - "scope": 1466, - "src": "1988:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - }, - "typeName": { - "id": 1462, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1461, - "name": "CToken", - "nameLocations": [ - "1988:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "1988:6:2" - }, - "referencedDeclaration": 1347, - "src": "1988:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1465, - "mutability": "mutable", - "name": "priceOracleSymbol", - "nameLocation": "2014:17:2", - "nodeType": "VariableDeclaration", - "scope": 1466, - "src": "2007:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1464, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2007:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "CTokenRequest", - "nameLocation": "1968:13:2", - "scope": 1624, - "visibility": "public" - }, - { - "id": 1554, - "nodeType": "FunctionDefinition", - "src": "2040:713:2", - "body": { - "id": 1553, - "nodeType": "Block", - "src": "2251:502:2", - "statements": [ - { - "assignments": [ - 1488 - ], - "declarations": [ - { - "constant": false, - "id": 1488, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2269:11:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2257:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1487, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1486, - "name": "PriceOracle", - "nameLocations": [ - "2257:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "2257:11:2" - }, - "referencedDeclaration": 1431, - "src": "2257:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - } - ], - "id": 1492, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 1489, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "2283:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2295:6:2", - "memberName": "oracle", - "nodeType": "MemberAccess", - "referencedDeclaration": 1362, - "src": "2283:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", - "typeString": "function () view external returns (contract PriceOracle)" - } - }, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2283:20:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2257:46:2" - }, - { - "assignments": [ - 1494 - ], - "declarations": [ - { - "constant": false, - "id": 1494, - "mutability": "mutable", - "name": "cTokenCount", - "nameLocation": "2314:11:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2309:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1493, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2309:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1497, - "initialValue": { - "expression": { - "id": 1495, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "2328:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2336:6:2", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2328:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2309:33:2" - }, - { - "assignments": [ - 1502 - ], - "declarations": [ - { - "constant": false, - "id": 1502, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2372:6:2", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "2348:30:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - }, - "typeName": { - "baseType": { - "id": 1500, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1499, - "name": "CTokenMetadata", - "nameLocations": [ - "2348:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2348:14:2" - }, - "referencedDeclaration": 1450, - "src": "2348:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1501, - "nodeType": "ArrayTypeName", - "src": "2348:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - }, - "visibility": "internal" - } - ], - "id": 1509, - "initialValue": { - "arguments": [ - { - "id": 1507, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "2402:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2381:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 1504, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1503, - "name": "CTokenMetadata", - "nameLocations": [ - "2385:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2385:14:2" - }, - "referencedDeclaration": 1450, - "src": "2385:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "id": 1505, - "nodeType": "ArrayTypeName", - "src": "2385:16:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata[]" - } - } - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2381:33:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2348:66:2" - }, - { - "body": { - "id": 1534, - "nodeType": "Block", - "src": "2459:97:2", - "statements": [ - { - "expression": { - "id": 1532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1520, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "2467:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - "id": 1522, - "indexExpression": { - "id": 1521, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2474:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2467:9:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 1524, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "2494:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - { - "id": 1525, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1488, - "src": "2507:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - { - "baseExpression": { - "id": 1526, - "name": "cTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "2520:7:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" - } - }, - "id": 1528, - "indexExpression": { - "id": 1527, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2528:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2520:10:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - } - }, - { - "id": 1529, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2532:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1530, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "2541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest calldata" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1523, - "name": "cTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "2479:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", - "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" - } - }, - "id": 1531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2479:70:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "src": "2467:82:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "id": 1533, - "nodeType": "ExpressionStatement", - "src": "2467:82:2" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1514, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2437:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 1515, - "name": "cTokenCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "2441:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2437:15:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1535, - "initializationExpression": { - "assignments": [ - 1511 - ], - "declarations": [ - { - "constant": false, - "id": 1511, - "mutability": "mutable", - "name": "i", - "nameLocation": "2430:1:2", - "nodeType": "VariableDeclaration", - "scope": 1535, - "src": "2425:6:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1510, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2425:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1513, - "initialValue": { - "hexValue": "30", - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2434:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2425:10:2" - }, - "loopExpression": { - "expression": { - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2454:3:2", - "subExpression": { - "id": 1517, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1511, - "src": "2454:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "2454:3:2" - }, - "nodeType": "ForStatement", - "src": "2420:136:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1539, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1540, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "2641:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1537, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "2616:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2622:9:2", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2616:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2616:33:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1542, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "2667:6:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - } - }, - { - "arguments": [ - { - "id": 1544, - "name": "comet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "2712:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - { - "id": 1545, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "2719:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2736:1:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2728:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 1546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2728:8:2", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2728:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1543, - "name": "queryWithAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2695:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", - "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2695:44:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" - }, - { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", - "typeString": "struct CometQuery.CometStateWithAccountState memory" - } - ], - "id": 1536, - "name": "QueryResponse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "2575:13:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" - } - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2599:15:2", - "2659:6:2", - "2683:10:2" - ], - "names": [ - "migratorEnabled", - "tokens", - "cometState" - ], - "nodeType": "FunctionCall", - "src": "2575:173:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse memory" - } - }, - "functionReturnParameters": 1485, - "id": 1552, - "nodeType": "Return", - "src": "2562:186:2" - } - ] - }, - "functionSelector": "61d11a6e", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMigratorData", - "nameLocation": "2049:15:2", - "parameters": { - "id": 1481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1469, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2082:11:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2070:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1468, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1467, - "name": "Comptroller", - "nameLocations": [ - "2070:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "2070:11:2" - }, - "referencedDeclaration": 1423, - "src": "2070:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1472, - "mutability": "mutable", - "name": "comet", - "nameLocation": "2105:5:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2099:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - }, - "typeName": { - "id": 1471, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1470, - "name": "Comet", - "nameLocations": [ - "2099:5:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "2099:5:2" - }, - "referencedDeclaration": 598, - "src": "2099:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", - "typeString": "contract Comet" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1476, - "mutability": "mutable", - "name": "cTokens", - "nameLocation": "2141:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2116:32:2", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - }, - "typeName": { - "baseType": { - "id": 1474, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1473, - "name": "CTokenRequest", - "nameLocations": [ - "2116:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, - "src": "2116:13:2" - }, - "referencedDeclaration": 1466, - "src": "2116:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "id": 1475, - "nodeType": "ArrayTypeName", - "src": "2116:15:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1478, - "mutability": "mutable", - "name": "account", - "nameLocation": "2170:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2154:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1477, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2154:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1480, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2199:7:2", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2183:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1479, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2183:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2064:146:2" - }, - "returnParameters": { - "id": 1485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1484, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2229:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - }, - "typeName": { - "id": 1483, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1482, - "name": "QueryResponse", - "nameLocations": [ - "2229:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1460, - "src": "2229:13:2" - }, - "referencedDeclaration": 1460, - "src": "2229:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", - "typeString": "struct CompoundV2Query.QueryResponse" - } - }, - "visibility": "internal" - } - ], - "src": "2228:22:2" - }, - "scope": 1624, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 1623, - "nodeType": "FunctionDefinition", - "src": "2757:804:2", - "body": { - "id": 1622, - "nodeType": "Block", - "src": "2980:581:2", - "statements": [ - { - "assignments": [ - 1575 - ], - "declarations": [ - { - "constant": false, - "id": 1575, - "mutability": "mutable", - "name": "cToken", - "nameLocation": "2993:6:2", - "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "2986:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - }, - "typeName": { - "id": 1574, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1573, - "name": "CToken", - "nameLocations": [ - "2986:6:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, - "src": "2986:6:2" - }, - "referencedDeclaration": 1347, - "src": "2986:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "visibility": "internal" - } - ], - "id": 1578, - "initialValue": { - "expression": { - "id": 1576, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3002:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3016:6:2", - "memberName": "cToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 1463, - "src": "3002:20:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2986:36:2" - }, - { - "assignments": [ - null, - 1580 - ], - "declarations": [ - null, - { - "constant": false, - "id": 1580, - "mutability": "mutable", - "name": "collateralFactor", - "nameLocation": "3036:16:2", - "nodeType": "VariableDeclaration", - "scope": 1622, - "src": "3031:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1579, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3031:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1588, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 1585, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3084:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - ], - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3076:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1583, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3076:7:2", - "typeDescriptions": {} - } - }, - "id": 1586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3076:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 1581, - "name": "comptroller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1557, - "src": "3056:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3068:7:2", - "memberName": "markets", - "nodeType": "MemberAccess", - "referencedDeclaration": 1356, - "src": "3056:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", - "typeString": "function (address) view external returns (bool,uint256)" - } - }, - "id": 1587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3056:36:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3028:64:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1592, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3153:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - ], - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3145:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3145:7:2", - "typeDescriptions": {} - } - }, - "id": 1593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3145:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1596, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3198:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "id": 1597, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1567, - "src": "3207:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1594, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3181:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3188:9:2", - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1315, - "src": "3181:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3181:34:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1601, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1599, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3234:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3241:9:2", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 1322, - "src": "3234:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3234:25:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1605, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3315:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1603, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3288:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3295:19:2", - "memberName": "balanceOfUnderlying", - "nodeType": "MemberAccess", - "referencedDeclaration": 1329, - "src": "3288:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3288:35:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 1609, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "3376:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "id": 1607, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3348:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3355:20:2", - "memberName": "borrowBalanceCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1336, - "src": "3348:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3348:36:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1611, - "name": "collateralFactor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1580, - "src": "3412:16:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 1612, - "name": "cToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "3452:6:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", - "typeString": "contract CToken" - } - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3459:19:2", - "memberName": "exchangeRateCurrent", - "nodeType": "MemberAccess", - "referencedDeclaration": 1341, - "src": "3452:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () external returns (uint256)" - } - }, - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3452:28:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1617, - "name": "cTokenRequest", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1563, - "src": "3515:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest memory" - } - }, - "id": 1618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3529:17:2", - "memberName": "priceOracleSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 1465, - "src": "3515:31:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 1615, - "name": "priceOracle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1560, - "src": "3497:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3509:5:2", - "memberName": "price", - "nodeType": "MemberAccess", - "referencedDeclaration": 1430, - "src": "3497:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) view external returns (uint256)" - } - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3497:50:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1589, - "name": "CTokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "3112:14:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", - "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "3137:6:2", - "3170:9:2", - "3225:7:2", - "3269:17:2", - "3333:13:2", - "3394:16:2", - "3438:12:2", - "3490:5:2" - ], - "names": [ - "cToken", - "allowance", - "balance", - "balanceUnderlying", - "borrowBalance", - "collateralFactor", - "exchangeRate", - "price" - ], - "nodeType": "FunctionCall", - "src": "3112:444:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata memory" - } - }, - "functionReturnParameters": 1572, - "id": 1621, - "nodeType": "Return", - "src": "3099:457:2" - } - ] - }, - "functionSelector": "a72b45e0", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "cTokenMetadata", - "nameLocation": "2766:14:2", - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1557, - "mutability": "mutable", - "name": "comptroller", - "nameLocation": "2798:11:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2786:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - }, - "typeName": { - "id": 1556, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1555, - "name": "Comptroller", - "nameLocations": [ - "2786:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, - "src": "2786:11:2" - }, - "referencedDeclaration": 1423, - "src": "2786:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", - "typeString": "contract Comptroller" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1560, - "mutability": "mutable", - "name": "priceOracle", - "nameLocation": "2827:11:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2815:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - }, - "typeName": { - "id": 1559, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1558, - "name": "PriceOracle", - "nameLocations": [ - "2815:11:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, - "src": "2815:11:2" - }, - "referencedDeclaration": 1431, - "src": "2815:11:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", - "typeString": "contract PriceOracle" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1563, - "mutability": "mutable", - "name": "cTokenRequest", - "nameLocation": "2865:13:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2844:34:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - }, - "typeName": { - "id": 1562, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1561, - "name": "CTokenRequest", - "nameLocations": [ - "2844:13:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, - "src": "2844:13:2" - }, - "referencedDeclaration": 1466, - "src": "2844:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenRequest" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "account", - "nameLocation": "2900:7:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2884:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2884:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2929:7:2", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2913:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2913:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - } - ], - "src": "2780:160:2" - }, - "returnParameters": { - "id": 1572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1571, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1623, - "src": "2957:21:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - }, - "typeName": { - "id": 1570, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1569, - "name": "CTokenMetadata", - "nameLocations": [ - "2957:14:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, - "src": "2957:14:2" - }, - "referencedDeclaration": 1450, - "src": "2957:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", - "typeString": "struct CompoundV2Query.CTokenMetadata" - } - }, - "visibility": "internal" - } - ], - "src": "2956:23:2" - }, - "scope": 1624, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1432, - "name": "CometQuery", - "nameLocations": [ - "1611:10:2" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, - "src": "1611:10:2" - }, - "id": 1433, - "nodeType": "InheritanceSpecifier", - "src": "1611:10:2" - } - ], - "canonicalName": "CompoundV2Query", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 1624, - 1268 - ], - "name": "CompoundV2Query", - "nameLocation": "1592:15:2", - "scope": 1625, - "usedErrors": [] - } - ], - "license": "UNLICENSED" - }, - "id": 2 -} \ No newline at end of file From b7e6ccad2c0b386935a40249fb8b18df33126d04 Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Wed, 4 Jan 2023 13:40:59 -0500 Subject: [PATCH 06/11] Update .gitignore to specify compiled files --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a7c0e09..92381e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ # Compiler files cache/ out/ -!/web/**/out/ +!/web/**/out/AaveV2Query.sol/AaveV2Query.json +!/web/**/out/CometQuery.sol/CometQuery.json +!/web/**/out/CompoundV2Query.sol/CompoundV2Query.json # Ignores development broadcast logs !/broadcast From 992583d5f9d39a9e6508801ad54846d26918e4ab Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Wed, 4 Jan 2023 14:33:19 -0500 Subject: [PATCH 07/11] Update hack for fixBigIntIssue --- vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index bd237f9..0cc90f4 100644 --- a/vite.config.js +++ b/vite.config.js @@ -18,7 +18,7 @@ function fixBigIntIssue() { if (file) { let fullFile = join(resolve(dir), 'assets', file); let f = await readFile(fullFile, { encoding: 'utf8' }); - await writeFile(fullFile, f.replaceAll(/[al]\.BigInt\(/g, 'A.BigInt(')); + await writeFile(fullFile, f.replaceAll(/[Et]\.BigInt\(/g, 'S.BigInt(')); console.log("Updated App file"); } else { console.error("App file not found"); From c5fd786e1a0efb1f8bb5766553f39894e1423d56 Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Wed, 4 Jan 2023 17:06:31 -0500 Subject: [PATCH 08/11] Handle native asset wallet balance --- .gitignore | 6 +- web/AaveV2Migrator.tsx | 3 +- web/CompoundV2Migrator.tsx | 3 +- web/Migrator.tsx | 13 +- web/Network.ts | 14 +- web/helpers/Aave/config.ts | 2 +- web/helpers/Sleuth/CometQuery.sol | 2 + .../out/AaveV2Query.sol/AaveV2Query.json | 58 +- .../Sleuth/out/CometQuery.sol/CometQuery.json | 2924 +++++++++-------- .../CompoundV2Query.sol/CompoundV2Query.json | 1326 ++++---- web/helpers/utils.ts | 59 +- web/types.ts | 2 + 12 files changed, 2293 insertions(+), 2119 deletions(-) diff --git a/.gitignore b/.gitignore index 92381e6..54fa95a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ # Compiler files cache/ out/ -!/web/**/out/AaveV2Query.sol/AaveV2Query.json -!/web/**/out/CometQuery.sol/CometQuery.json -!/web/**/out/CompoundV2Query.sol/CompoundV2Query.json +!/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json +!/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json +!/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json # Ignores development broadcast logs !/broadcast diff --git a/web/AaveV2Migrator.tsx b/web/AaveV2Migrator.tsx index 484ee66..c060185 100644 --- a/web/AaveV2Migrator.tsx +++ b/web/AaveV2Migrator.tsx @@ -10,6 +10,7 @@ import AaveV2Query from './helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json'; import { cometQueryResponseToCometData } from './helpers/utils'; import Migrator, { MigratorState } from './Migrator'; +import { getNativeTokenByNetwork } from './Network'; import { AaveNetworkConfig, AppProps, @@ -199,7 +200,7 @@ export default function AaveV2Migrator({ migratorEnabled: migratorEnabled.toBigInt() > 0n, borrowTokens, collateralTokens, - cometState: cometQueryResponseToCometData(cometState) + cometState: cometQueryResponseToCometData(cometState, getNativeTokenByNetwork(aaveNetworkConfig.network)) }; }} selectMigratorSource={selectMigratorSource} diff --git a/web/CompoundV2Migrator.tsx b/web/CompoundV2Migrator.tsx index f65bf0f..906fa4a 100644 --- a/web/CompoundV2Migrator.tsx +++ b/web/CompoundV2Migrator.tsx @@ -10,6 +10,7 @@ import CompoundV2Query from './helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2 import { cometQueryResponseToCometData } from './helpers/utils'; import Migrator, { MigratorState } from './Migrator'; +import { getNativeTokenByNetwork } from './Network'; import { AppProps, CompoundNetworkConfig, @@ -146,7 +147,7 @@ export default function CompoundV2Migrator({ migratorEnabled: migratorEnabled.toBigInt() > 0n, borrowTokens, collateralTokens, - cometState: cometQueryResponseToCometData(cometState) + cometState: cometQueryResponseToCometData(cometState, getNativeTokenByNetwork(compoundNetworkConfig.network)) }; }} selectMigratorSource={selectMigratorSource} diff --git a/web/Migrator.tsx b/web/Migrator.tsx index 9e47c1f..294843f 100644 --- a/web/Migrator.tsx +++ b/web/Migrator.tsx @@ -1,6 +1,9 @@ import '../styles/main.scss'; -import { StateType as CometStateType, ProtocolAndAccountState } from '@compound-finance/comet-extension/dist/CometState'; +import { + StateType as CometStateType, + ProtocolAndAccountState +} from '@compound-finance/comet-extension/dist/CometState'; import { Contract } from '@ethersproject/contracts'; import { JsonRpcProvider } from '@ethersproject/providers'; import { AlphaRouter } from '@uniswap/smart-order-router'; @@ -275,7 +278,11 @@ export default function Migrator({ ]); useAsyncEffect(async () => { - const { borrowTokens, collateralTokens, migratorEnabled, cometState } = await getMigrateData(web3, migrationSourceInfo, state); + const { borrowTokens, collateralTokens, migratorEnabled, cometState } = await getMigrateData( + web3, + migrationSourceInfo, + state + ); dispatch({ type: ActionType.SetAccountState, @@ -299,6 +306,7 @@ export default function Migrator({ }); const tokensWithCollateralBalances = collateralTokens.filter(tokenState => { const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); + return ( (v3CollateralAsset !== undefined || tokenState.underlying.symbol === cometData.baseAsset.symbol) && tokenState.balance > 0n @@ -731,6 +739,7 @@ export default function Migrator({ onClick={() => { setApproveModal({ asset: { + decimals: tokenState.underlying.decimals, name: tokenState.underlying.name, symbol: tokenState.underlying.symbol }, diff --git a/web/Network.ts b/web/Network.ts index 6b6af4f..cc2b08d 100644 --- a/web/Network.ts +++ b/web/Network.ts @@ -18,7 +18,8 @@ import { Network, networks, RootsV2, - RootsV3 + RootsV3, + Token } from './types'; export function isNetwork(network: string): network is Network { @@ -51,6 +52,17 @@ export function getIdByNetwork(network: Network): number { throw 'invalid'; } +export function getNativeTokenByNetwork(network: Network): Token { + if (network === 'mainnet') { + return { + decimals: 18, + name: 'Ether', + symbol: 'ETH' + }; + } + throw 'invalid'; +} + export function getNetworkById(chainId: number): Network | null { if (chainId === 1) { return 'mainnet'; diff --git a/web/helpers/Aave/config.ts b/web/helpers/Aave/config.ts index b1ea4f3..37448f0 100644 --- a/web/helpers/Aave/config.ts +++ b/web/helpers/Aave/config.ts @@ -31,7 +31,7 @@ export default [ aTokenSymbol: 'aWETH', stableDebtTokenAddress: '0x4e977830ba4bd783C0BB7F15d3e243f73FF57121', variableDebtTokenAddress: '0xF63B34710400CAd3e044cFfDcAb00a0f32E33eCf', - symbol: 'WETH', + symbol: 'ETH', address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', decimals: 18 }, diff --git a/web/helpers/Sleuth/CometQuery.sol b/web/helpers/Sleuth/CometQuery.sol index a6decf1..01253c3 100644 --- a/web/helpers/Sleuth/CometQuery.sol +++ b/web/helpers/Sleuth/CometQuery.sol @@ -214,6 +214,7 @@ contract CometQuery { uint bulkerAllowance; CollateralAssetWithAccountState[] collateralAssets; uint earnAPR; + uint nativeAssetWalletBalance; uint totalBorrow; uint totalBorrowPrincipal; uint totalSupply; @@ -311,6 +312,7 @@ contract CometQuery { bulkerAllowance: comet.allowance(account, bulker), collateralAssets: tokens, earnAPR: response.earnAPR, + nativeAssetWalletBalance: account.balance, totalBorrow: response.totalBorrow, totalBorrowPrincipal: response.totalBorrowPrincipal, totalSupply: response.totalSupply, diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json index b1be04a..1658b27 100644 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json @@ -629,6 +629,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -1044,6 +1049,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -1080,13 +1090,13 @@ } ], "bytecode": { - "object": "0x6080806040523461001657612cac908161001c8239f35b600080fdfe61020080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461104f575080635346cc1914610bdb578063c2815c0b14610aa0578063cbe293fa14610a54578063d4fc9fc6146108cd5763ec7d7f7a1461006257600080fd5b346106435760e0366003190112610643576004356001600160a01b03811681036106435761008e611106565b61009661125b565b6001600160401b038060643511610643573660236064350112156106435760643560040135116106435736602460606064356004013502606435010111610643576084356001600160a01b03811690036106435760049060206100f761122f565b94610100611245565b60c052600060606040516101138161111c565b828152818582015261012361164b565b6040820152015260405193848092631f94a27560e31b825260018060a01b03165afa91821561065057600092610889575b50610164606435600401356116f8565b9261017260405194856111fa565b60046064350135808552601f1990610189906116f8565b0160005b81811061087257505060005b6064356004013581106107c7575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529094166024850152602084806044810103816001600160a01b0385165afa93841561065057600094610793575b506101fd61164b565b5061020781611bdd565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829086165afa90811561065057600091610761575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106505760009161072f575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152858116602483015290911690602081604481855afa801561065057600060a0526106fc575b5082828103116106e657602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106505760009b6106b2575b5061035e604051806101005261116e565b610100515260a05160206101005101520360406101005101526060610100510152608061010051015260a061010051015260c061010051015260e06101005101526101008051015261012061010051015261014061010051015260a0608051015151936103ca856116f8565b946103d860405196876111fa565b8086526103e7601f19916116f8565b0160005b81811061069b57505060005b60a06080510151805160ff83161015610450579061042a61044b926104236084359160ff851690611754565b5186612a5a565b61043760ff831689611754565b5261044560ff821688611754565b50611bb3565b6103f7565b505093909160805160208101519260408201519160446020608060608401519301519760405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106505760009161065c575b50906024966020959493926080519360c08501519060e08601519261010087015194610120880151966101606101408a015199015199604080519e8f906104fa82611152565b6101005182528f820152015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526040519384809263b3596f0760e01b825260018060a01b0360c05116600483015260018060a01b03165afa91821561065057600092610617575b50604051936105858561111c565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f65750505082936105eb9151601f198583030160608601526113d2565b905160808301520390f35b90919560206101208261060c6001948b51611271565b0197019291016105c9565b9091506020813d602011610648575b81610633602093836111fa565b8101031261064357519038610577565b600080fd5b3d9150610626565b6040513d6000823e3d90fd5b9493929190506020853d602011610693575b8161067b602093836111fa565b810103126106435793519293919290919060246104b4565b3d915061066e565b6020906106a6612679565b82828a010152016103eb565b909a506020813d6020116106de575b816106ce602093836111fa565b810103126106435751993861034d565b3d91506106c1565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610727575b81610715602093836111fa565b81010312610643575160a052386102cd565b3d9150610708565b90506020813d602011610759575b8161074a602093836111fa565b81010312610643575138610283565b3d915061073d565b90506020813d60201161078b575b8161077c602093836111fa565b81010312610643575138610246565b3d915061076f565b9093506020813d6020116107bf575b816107af602093836111fa565b81010312610643575192386101f4565b3d91506107a2565b60606064358282020136036023190112610643576040516107e781611137565b6064356060830201602401356001600160a01b03811690036106435760643560608302016024810135825261084b9188916108249060440161121b565b602082015261083b6064606086028135010161121b565b604082015260843590878661177e565b6108558287611754565b526108608186611754565b5060001981146106e657600101610199565b60209061087d61170f565b8282890101520161018d565b9091506020813d6020116108c5575b816108a5602093836111fa565b8101031261064357516001600160a01b0381168103610643579038610154565b3d9150610898565b3461064357602080600319360112610643576108ef6108ea6110f0565b611bdd565b906040519080825282519261018090818385015261098560018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610958610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a27578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a44838f8690600196030187528d516115b6565b9b019301930191949392906109db565b3461064357604036600319011261064357610a6d6110f0565b6024359060ff8216820361064357610a9c91610a88916126f7565b6040519182916020835260208301906115b6565b0390f35b346106435760031960603682011261064357610aba6110f0565b602435906001600160401b039283831161064357610160809184360301126106435760405190810181811085821117610bc557604052610afc8360040161121b565b81526024830135602082015260448301356040820152606483013584811161064357610b2e906004369186010161156f565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b5d60e4840161121b565b60e082015261010483013561010082015261012483013593841161064357610144610bb193610b95610a9c966004369184010161156f565b6101208401520135610140820152610bab61125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461064357606036600319011261064357610bf46110f0565b610bfc611106565b90610c0561125b565b610c0d61164b565b50610c1782611bdd565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829088165afa9081156106505760009161101d575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829089165afa90811561065057600091610feb575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152878116602483015290911690602081604481855afa90811561065057600091610fb9575b5083838103116106e657879386519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156106505760009c610f85575b50610d626040518060e05261116e565b60e05152602060e051015203604060e0510152606060e0510152608060e051015260a060e051015260c060e051015260e08051015261010060e051015261012060e051015261014060e051015260a082019283515191610dc1836116f8565b92610dcf60405194856111fa565b808452610dde601f19916116f8565b0160005b818110610f6e57505060005b855180519060ff831691821015610e325781610e1c8a610e15610e2d969561044595611754565b5188612a5a565b610e268289611754565b5286611754565b610dee565b610e89868589888d6020830151946020604085015195606086015194608087015194604051809b81948293636eb1769f60e11b84526004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa90811561065057600091610f38575b610a9c975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610ede8d611152565b60e0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906113d2565b90506020873d602011610f66575b81610f53602093836111fa565b8101031261064357610a9c965190610ea5565b3d9150610f46565b602090610f79612679565b82828801015201610de2565b909b506020813d602011610fb1575b81610fa1602093836111fa565b8101031261064357519a38610d52565b3d9150610f94565b90506020813d602011610fe3575b81610fd4602093836111fa565b81010312610643575188610cd4565b3d9150610fc7565b90506020813d602011611015575b81611006602093836111fa565b81010312610643575186610c8f565b3d9150610ff9565b90506020813d602011611047575b81611038602093836111fa565b81010312610643575185610c54565b3d915061102b565b346106435760e0366003190112610643576110686110f0565b6001600160a01b039060243582811681036106435760603660431901126106435761109284611137565b60443583811681036106435784526064358381168103610643576020850152608435928316830361064357836110e19360406101209601526110d261122f565b916110db611245565b9361177e565b6110ee6040518092611271565bf35b600435906001600160a01b038216820361064357565b602435906001600160a01b038216820361064357565b608081019081106001600160401b03821117610bc557604052565b606081019081106001600160401b03821117610bc557604052565b6101a081019081106001600160401b03821117610bc557604052565b61016081019081106001600160401b03821117610bc557604052565b61012081019081106001600160401b03821117610bc557604052565b61018081019081106001600160401b03821117610bc557604052565b61010081019081106001600160401b03821117610bc557604052565b6101c081019081106001600160401b03821117610bc557604052565b90601f801991011681019081106001600160401b03821117610bc557604052565b35906001600160a01b038216820361064357565b60a435906001600160a01b038216820361064357565b60c435906001600160a01b038216820361064357565b604435906001600160a01b038216820361064357565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161144461016093846102608801526103008701906112f6565b9060e083015116610280860152610100808301516102a087015261147c610120928385015161019f19898303016102c08a01526112f6565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115255750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b84806115448f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bc557601f01601f191660200190565b81601f820112156106435780359061158682611554565b9261159460405194856111fa565b8284526020838301011161064357816000926020809301838601378301015290565b9061163d60018060a01b0380845116835260208401516020840152604084015160408401526115f460608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b6040519061165882611152565b604051610180836116688361116e565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b6001600160401b038111610bc55760051b60200190565b6040519061171c8261118a565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117685760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361178b61170f565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065057600095611a41575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561065057600092611a0d575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610650576000946119d9575b506040516370a0823160e01b815287810186905294602086602481855afa958615610650576000966119a5575b50604051906370a0823160e01b825288820152602081602481855afa968715610650578a9160009861196d575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065057600098611936575b50604051986119088a61118a565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611965575b81611951602093836111fa565b8101031261196257505196386118fa565b80fd5b3d9150611944565b9150966020823d60201161199d575b81611989602093836111fa565b8101031261196257505195899060246118be565b3d915061197c565b90956020823d6020116119d1575b816119c0602093836111fa565b810103126119625750519438611891565b3d91506119b3565b90936020823d602011611a05575b816119f4602093836111fa565b810103126119625750519238611864565b3d91506119e7565b90916020823d602011611a39575b81611a28602093836111fa565b81010312611962575051903861182c565b3d9150611a1b565b6020959195813d602011611aa6575b81611a5d602093836111fa565b81010312611aa2576040519160208301908382106001600160401b03831117611a8f57506040525181529360206117e3565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a50565b519060ff8216820361064357565b51906001600160a01b038216820361064357565b51906001600160401b038216820361064357565b51906cffffffffffffffffffffffffff8216820361064357565b602081830312610643578051906001600160401b038211610643570181601f82011215610643578051611b3081611554565b92611b3e60405194856111fa565b8184526020828401011161064357611b5c91602080850191016112d3565b90565b60405190611b6c8261116e565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106e65760010190565b6301e133809080600019048211811515166106e6570290565b610120526000610160604051611bf2816111a6565b604051611bfe816111c2565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361012051165afa80156106505760006101605261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0361012051165afa91821561065057600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361012051165afa918215610650576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0361012051165afa92831561065057600093612591575b506040516355d3f8af60e11b815261012051602090829060049082906001600160a01b03165afa9081156106505760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0361012051165afa9485156106505760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361012051165afa918215610650576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0361012051165afa948515610650576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0361012051165afa9889156106505760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0361012051165afa9384156106505760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0361012051165afa92831561065057600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0361012051165afa9485156106505760009561235b575b50604051634fd41dad60e11b8152600481018d905261012051602090829060249082906001600160a01b03165afa80156106505760006101405261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361012051165afa9b8c156106505760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610650576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106505760006101e052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106505760009261226d575b506040516341976e0960e01b81526001600160a01b0384811660048301526101205191959160209187916024918391165afa94851561065057600095612239575b506040516101a08181526370a0823160e01b9091526101205181516001600160a01b039182166004909101529051602091602490829085165afa806101c05215610650576000906101c051612201575b61207660405180610180526111c2565b60018060a01b0316610180515260206101805101526101e05160406101805101526060610180510152608061018051015260018060a01b031660a061018051015260c061018051015260e06101805101526120d660ff61016051166116f8565b976120e4604051998a6111fa565b60ff61016051168952601f196120ff60ff61016051166116f8565b0160005b8181106121e957505060005b60ff610160511660ff82161015612151578061213161214c92610120516126f7565b61213e60ff83168d611754565b5261044560ff82168c611754565b61210f565b5091939597909294969861217b6001600160401b03612174816101405116611bc4565b9216611bc4565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111a6565b610180518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b5f565b9201015201612103565b905060203d602011612232575b61221b816101a0516111fa565b60206101a051809281010312610643575190612066565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261064357519338612016565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611afe565b9038611fd5565b6020813d6020116122be575b816122ab602093836111fa565b8101031261064357516101e05238611fa5565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f74565b909b506020813d602011612317575b816122ff602093836111fa565b810103126106435761231090611ad0565b9a38611f44565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b810103126106435761234990611ad0565b6101405238611f0d565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b81010312610643576040519061238f826111c2565b61239881611ad0565b82526123a660208201611ad0565b60208301526123b760408201611ad0565b60408301526123c860608201611ad0565b60608301526123d960808201611ae4565b60808301526123ea60a08201611ae4565b60a083015260c081015164ffffffffff811681036106435760c08301526124139060e001611aae565b60e08201529338611ece565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261064357519138611e9b565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261064357519238611e69565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261064357519738611e37565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261064357519338611e05565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261064357519038611dd3565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261064357519338611da1565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b81010312610643575138611d6f565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261064357519138611d39565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b81010312610643576125f290611abc565b9038611d07565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b810103126106435761262e90611abc565b9038611cd5565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b810103126106435761266790611aae565b6101605238611ca3565b3d9150612649565b60405190612686826111de565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064357565b90612700611b5f565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161116e565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119625750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261196257508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611962575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119625750612a4760e08651926129d2846111c2565b6129db81611aae565b84526129e960208201611abc565b60208501526129f9888201611abc565b88850152612a0960608201611ad0565b6060850152612a1a60808201611ad0565b6080850152612a2b60a08201611ad0565b60a0850152612a3c60c08201611ad0565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065057600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065057600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106505760009d612bd3575b50604051809e612b7f826111de565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119625750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119625750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611962575051906020612aab565b3d9150612c4f56fea2646970667358221220c6be69eb7ec27c26eaf24f470fffac8cc64610bb460378741cb6a05b4fd199b164736f6c63430008100033", + "object": "0x6080806040523461001657612c95908161001c8239f35b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec14611045575080635346cc1914610bcd578063c2815c0b14610a92578063cbe293fa14610a46578063d4fc9fc6146108bf5763ec7d7f7a1461006257600080fd5b346106445760e0366003190112610644576004356001600160a01b03811690819003610644576100906110fc565b610098611235565b916001600160401b038060643511610644573660236064350112156106445760643560040135116106445736602460606064356004013502606435010111610644576084356001600160a01b0381169003610644576004926100f8611209565b602061010261121f565b936000606060405161011381611112565b8281528185820152610123611630565b6040820152015260405196878092631f94a27560e31b82525afa9485156106515760009561087b575b5061015c606435600401356116e4565b9361016a60405195866111d4565b60046064350135808652601f1990610181906116e4565b0160005b81811061086457505060005b6064356004013581106107b9575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa90811561065157600091610787575b506101f5611630565b506101ff82611bc9565b60c0526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa90811561065157600091610755575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561065157600091610723575b5060c0515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa80156106515760006080526106f0575b5082828103116106da5760249260c051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106515760009b6106a6575b506103556040518060a052611164565b60a05152608051602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a060c051015151936103b7856116e4565b946103c560405196876111d4565b8086526103d4601f19916116e4565b0160005b81811061068f57505060005b60a060c0510151805160ff8316101561043d5790610417610438926104106084359160ff851690611740565b5187612a43565b61042460ff831689611740565b5261043260ff821688611740565b50611b9f565b6103e4565b50508585858560c0519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106515760009161065d575b5060c0519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6104eb82611148565b60a051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa91821561065157600092610618575b506040519361058685611112565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f75750505082936105ec9151601f198583030160608601526113ac565b905160808301520390f35b90919560206101208261060d6001948b5161124b565b0197019291016105ca565b9091506020813d602011610649575b81610634602093836111d4565b8101031261064457519084610578565b600080fd5b3d9150610627565b6040513d6000823e3d90fd5b90506020813d602011610687575b81610678602093836111d4565b8101031261064457518a6104a3565b3d915061066b565b60209061069a612662565b82828a010152016103d8565b909a506020813d6020116106d2575b816106c2602093836111d4565b8101031261064457519938610345565b3d91506106b5565b634e487b7160e01b600052601160045260246000fd5b6020813d60201161071b575b81610709602093836111d4565b810103126106445751608052386102c5565b3d91506106fc565b90506020813d60201161074d575b8161073e602093836111d4565b8101031261064457513861027b565b3d9150610731565b90506020813d60201161077f575b81610770602093836111d4565b8101031261064457513861023e565b3d9150610763565b90506020813d6020116107b1575b816107a2602093836111d4565b810103126106445751386101ec565b3d9150610795565b60606064358282020136036023190112610644576040516107d98161112d565b6064356060830201602401356001600160a01b03811690036106445760643560608302016024810135825261083d918591610816906044016111f5565b602082015261082d606460608602813501016111f5565b6040820152608435908a8661176a565b6108478288611740565b526108528187611740565b5060001981146106da57600101610191565b60209061086f6116fb565b82828a01015201610185565b9094506020813d6020116108b7575b81610897602093836111d4565b8101031261064457516001600160a01b038116810361064457933861014c565b3d915061088a565b3461064457602080600319360112610644576108e16108dc6110e6565b611bc9565b906040519080825282519261018090818385015261097760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e060808801519761094a610100998a6102208b01526102a08a01906112d0565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112d0565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a19578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a36838f8690600196030187528d5161159b565b9b019301930191949392906109cd565b3461064457604036600319011261064457610a5f6110e6565b6024359060ff8216820361064457610a8e91610a7a916126e0565b60405191829160208352602083019061159b565b0390f35b346106445760031960603682011261064457610aac6110e6565b602435906001600160401b039283831161064457610160809184360301126106445760405190810181811085821117610bb757604052610aee836004016111f5565b81526024830135602082015260448301356040820152606483013584811161064457610b209060043691860101611554565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b4f60e484016111f5565b60e082015261010483013561010082015261012483013593841161064457610144610ba393610b87610a8e9660043691840101611554565b6101208401520135610140820152610b9d611235565b91612a43565b6040519182916020835260208301906112f5565b634e487b7160e01b600052604160045260246000fd5b3461064457606036600319011261064457610be66110e6565b610bee6110fc565b90610bf7611235565b610bff611630565b50610c0982611bc9565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561065157600093611011575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561065157600094610fdd575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561065157600091610fab575b5082828103116106da57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106515760009b610f77575b5060206040519e8f90610d5c82611164565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610da1846116e4565b93610daf60405195866111d4565b808552610dbe601f19916116e4565b0160005b818110610f6057505060005b60a0860151805160ff83161015610e155790610df588610410610e109460ff851690611740565b610e0260ff831688611740565b5261043260ff821687611740565b610dce565b610e6d8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561065157600092610f2a575b610a8e995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ed082611148565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113ac565b91506020893d602011610f58575b81610f45602093836111d4565b8101031261064457610a8e985191610e89565b3d9150610f38565b602090610f6b612662565b82828901015201610dc2565b909a506020813d602011610fa3575b81610f93602093836111d4565b8101031261064457519938610d4a565b3d9150610f86565b90506020813d602011610fd5575b81610fc6602093836111d4565b81010312610644575188610ccd565b3d9150610fb9565b9093506020813d602011611009575b81610ff9602093836111d4565b8101031261064457519286610c87565b3d9150610fec565b9092506020813d60201161103d575b8161102d602093836111d4565b8101031261064457519185610c49565b3d9150611020565b346106445760e03660031901126106445761105e6110e6565b6001600160a01b03906024358281168103610644576060366043190112610644576110888461112d565b60443583811681036106445784526064358381168103610644576020850152608435928316830361064457836110d79360406101209601526110c8611209565b916110d161121f565b9361176a565b6110e4604051809261124b565bf35b600435906001600160a01b038216820361064457565b602435906001600160a01b038216820361064457565b608081019081106001600160401b03821117610bb757604052565b606081019081106001600160401b03821117610bb757604052565b6101c081019081106001600160401b03821117610bb757604052565b61016081019081106001600160401b03821117610bb757604052565b61012081019081106001600160401b03821117610bb757604052565b61018081019081106001600160401b03821117610bb757604052565b61010081019081106001600160401b03821117610bb757604052565b90601f801991011681019081106001600160401b03821117610bb757604052565b35906001600160a01b038216820361064457565b60a435906001600160a01b038216820361064457565b60c435906001600160a01b038216820361064457565b604435906001600160a01b038216820361064457565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112c05750506000910152565b81810151838201526020016112b0565b906020916112e9815180928185528580860191016112ad565b601f01601f1916010190565b9061139360018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261134760a08501516101c08060a08701528501906112d0565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112d0565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161141e61016093846102808801526103208701906112d0565b9060e0830151166102a0860152610100808301516102c087015261145661012092838501516101bf19898303016102e08a01526112d0565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061150a5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806115298f93600194601f19878303018852516112f5565b9e019301930191949392906114bb565b6001600160401b038111610bb757601f01601f191660200190565b81601f820112156106445780359061156b82611539565b9261157960405194856111d4565b8284526020838301011161064457816000926020809301838601378301015290565b9061162260018060a01b0380845116835260208401516020840152604084015160408401526115d960608501516101608060608701528501906112d0565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112d0565b916101408091015191015290565b6040519061163d82611148565b6040516101a08361164d83611164565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bb75760051b60200190565b6040519061170882611180565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117545760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91939092936117776116fb565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065157600095611a2d575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa918215610651576000926119f9575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610651576000946119c5575b506040516370a0823160e01b815287810186905294602086602481855afa95861561065157600096611991575b50604051906370a0823160e01b825288820152602081602481855afa968715610651578a91600098611959575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065157600098611922575b50604051986118f48a611180565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611951575b8161193d602093836111d4565b8101031261194e57505196386118e6565b80fd5b3d9150611930565b9150966020823d602011611989575b81611975602093836111d4565b8101031261194e57505195899060246118aa565b3d9150611968565b90956020823d6020116119bd575b816119ac602093836111d4565b8101031261194e575051943861187d565b3d915061199f565b90936020823d6020116119f1575b816119e0602093836111d4565b8101031261194e5750519238611850565b3d91506119d3565b90916020823d602011611a25575b81611a14602093836111d4565b8101031261194e5750519038611818565b3d9150611a07565b6020959195813d602011611a92575b81611a49602093836111d4565b81010312611a8e576040519160208301908382106001600160401b03831117611a7b57506040525181529360206117cf565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a3c565b519060ff8216820361064457565b51906001600160a01b038216820361064457565b51906001600160401b038216820361064457565b51906cffffffffffffffffffffffffff8216820361064457565b602081830312610644578051906001600160401b038211610644570181601f82011215610644578051611b1c81611539565b92611b2a60405194856111d4565b8184526020828401011161064457611b4891602080850191016112ad565b90565b60405190611b5882611164565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106da5760010190565b6301e133809080600019048211811515166106da570290565b610100526000610160604051611bde8161119c565b604051611bea816111b8565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361010051165afa801561065157600061014052612626575b506040519063c55dae6360e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ea575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ae575b506040519163300e6beb60e01b835260208360048160018060a01b0361010051165afa9283156106515760009361257a575b506040516355d3f8af60e11b815261010051602090829060049082906001600160a01b03165afa90811561065157600091612548575b506040519363189bb2f160e01b855260208560048160018060a01b0361010051165afa94851561065157600095612514575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361010051165afa918215610651576000926124e0575b50604051936349b270c560e11b855260208560048160018060a01b0361010051165afa948515610651576000956124ac575b5060405197637eb7113160e01b895260208960048160018060a01b0361010051165afa98891561065157600099612478575b50604051926318160ddd60e01b845260208460048160018060a01b0361010051165afa93841561065157600094612444575b506040519163020a17bd60e61b835260208360048160018060a01b0361010051165afa92831561065157600093612410575b5060405163b9f0baf760e01b81526101008051919591869060049082906001600160a01b03165afa94851561065157600095612344575b50604051634fd41dad60e11b8152600481018d905261010051602090829060249082906001600160a01b03165afa801561065157600061012052612308575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361010051165afa9b8c156106515760009c6122cc575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610651576000946122af575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106515760006101605261227b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561065157600092612256575b506040516341976e0960e01b81526001600160a01b0384811660048301526101005191959160209187916024918391165afa94851561065157600095612222575b506040516101808181526370a0823160e01b9091526101005181516001600160a01b039182166004909101528151919291602091602490829085165afa916101a0928084521561065157600092516121ea575b506120696040518060e0526111b8565b60018060a01b031660e05152602060e051015261016051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e0805101526120c060ff61014051166116e4565b976120ce604051998a6111d4565b60ff61014051168952601f196120e960ff61014051166116e4565b0160005b8181106121d257505060005b60ff610140511660ff8216101561213b578061211b61213692610100516126e0565b61212860ff83168d611740565b5261043260ff82168c611740565b6120f9565b509193959790929496986121656001600160401b0361215e816101205116611bb0565b9216611bb0565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61218f8c61119c565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121e0611b4b565b92010152016120ed565b9091506020903d60201161221a575b8061220783602093516111d4565b5180928101031261064457519038612059565b3d91506121f9565b9094506020813d60201161224e575b8161223e602093836111d4565b8101031261064457519338612006565b3d9150612231565b6122749192503d806000833e61226c81836111d4565b810190611aea565b9038611fc5565b6020813d6020116122a7575b81612294602093836111d4565b8101031261064457516101605238611f95565b3d9150612287565b6122c59194503d806000833e61226c81836111d4565b9238611f64565b909b506020813d602011612300575b816122e8602093836111d4565b81010312610644576122f990611abc565b9a38611f34565b3d91506122db565b6020813d60201161233c575b81612321602093836111d4565b810103126106445761233290611abc565b6101205238611efd565b3d9150612314565b909450610100813d61010011612408575b8161236361010093836111d4565b810103126106445760405190612378826111b8565b61238181611abc565b825261238f60208201611abc565b60208301526123a060408201611abc565b60408301526123b160608201611abc565b60608301526123c260808201611ad0565b60808301526123d360a08201611ad0565b60a083015260c081015164ffffffffff811681036106445760c08301526123fc9060e001611a9a565b60e08201529338611ebe565b3d9150612355565b9092506020813d60201161243c575b8161242c602093836111d4565b8101031261064457519138611e87565b3d915061241f565b9093506020813d602011612470575b81612460602093836111d4565b8101031261064457519238611e55565b3d9150612453565b9098506020813d6020116124a4575b81612494602093836111d4565b8101031261064457519738611e23565b3d9150612487565b9094506020813d6020116124d8575b816124c8602093836111d4565b8101031261064457519338611df1565b3d91506124bb565b9091506020813d60201161250c575b816124fc602093836111d4565b8101031261064457519038611dbf565b3d91506124ef565b9094506020813d602011612540575b81612530602093836111d4565b8101031261064457519338611d8d565b3d9150612523565b90506020813d602011612572575b81612563602093836111d4565b81010312610644575138611d5b565b3d9150612556565b9092506020813d6020116125a6575b81612596602093836111d4565b8101031261064457519138611d25565b3d9150612589565b9091506020813d6020116125e2575b816125ca602093836111d4565b81010312610644576125db90611aa8565b9038611cf3565b3d91506125bd565b9091506020813d60201161261e575b81612606602093836111d4565b810103126106445761261790611aa8565b9038611cc1565b3d91506125f9565b6020813d60201161265a575b8161263f602093836111d4565b810103126106445761265090611a9a565b6101405238611c8f565b3d9150612632565b6040519061266f82611148565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064457565b906126e9611b4b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa9283156128ec5760009361298a575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561297f5760009261294f575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128c257908c97969594939291600095612934575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561292957908c9160009a6128f7575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156128ec5760009e6128cd575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128c25760009d612893575b5082519d8e61286181611164565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128bb575b6128aa81836111d4565b8101031261194e5750519b38612853565b503d6128a0565b83513d6000823e3d90fd5b6128e4908493929f3d8091833e61226c81836111d4565b9d9091612823565b85513d6000823e3d90fd5b9150988282813d8311612922575b61290f81836111d4565b8101031261194e57508b905198386127e4565b503d612905565b84513d6000823e3d90fd5b61294891953d8091833e61226c81836111d4565b93386127b0565b90918582813d8311612978575b61296681836111d4565b8101031261194e57505190600461276d565b503d61295c565b50513d6000823e3d90fd5b90928382813d8311612a3c575b6129a181836111d4565b8101031261194e5750612a3060e08651926129bb846111b8565b6129c481611a9a565b84526129d260208201611aa8565b60208501526129e2888201611aa8565b888501526129f260608201611abc565b6060850152612a0360808201611abc565b6080850152612a1460a08201611abc565b60a0850152612a2560c08201611abc565b60c0850152016126cc565b60e0820152913861272a565b503d612997565b9190612a4d612662565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065157600092612c2a575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065157600091612bf0575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106515760009d612bbc575b50604051809e612b6882611148565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612be8575b81612bd7602093836111d4565b8101031261194e5750519b38612b59565b3d9150612bca565b906020823d602011612c22575b81612c0a602093836111d4565b8101031261194e5750612c1c906126cc565b38612ad8565b3d9150612bfd565b90916020823d602011612c57575b81612c45602093836111d4565b8101031261194e575051906020612a94565b3d9150612c3856fea2646970667358221220b3b066a8375c5141c37d3b12d314dc547e05d24827a25e994164faecbe83335664736f6c63430008100033", "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x61020080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461104f575080635346cc1914610bdb578063c2815c0b14610aa0578063cbe293fa14610a54578063d4fc9fc6146108cd5763ec7d7f7a1461006257600080fd5b346106435760e0366003190112610643576004356001600160a01b03811681036106435761008e611106565b61009661125b565b6001600160401b038060643511610643573660236064350112156106435760643560040135116106435736602460606064356004013502606435010111610643576084356001600160a01b03811690036106435760049060206100f761122f565b94610100611245565b60c052600060606040516101138161111c565b828152818582015261012361164b565b6040820152015260405193848092631f94a27560e31b825260018060a01b03165afa91821561065057600092610889575b50610164606435600401356116f8565b9261017260405194856111fa565b60046064350135808552601f1990610189906116f8565b0160005b81811061087257505060005b6064356004013581106107c7575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529094166024850152602084806044810103816001600160a01b0385165afa93841561065057600094610793575b506101fd61164b565b5061020781611bdd565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829086165afa90811561065057600091610761575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106505760009161072f575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152858116602483015290911690602081604481855afa801561065057600060a0526106fc575b5082828103116106e657602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106505760009b6106b2575b5061035e604051806101005261116e565b610100515260a05160206101005101520360406101005101526060610100510152608061010051015260a061010051015260c061010051015260e06101005101526101008051015261012061010051015261014061010051015260a0608051015151936103ca856116f8565b946103d860405196876111fa565b8086526103e7601f19916116f8565b0160005b81811061069b57505060005b60a06080510151805160ff83161015610450579061042a61044b926104236084359160ff851690611754565b5186612a5a565b61043760ff831689611754565b5261044560ff821688611754565b50611bb3565b6103f7565b505093909160805160208101519260408201519160446020608060608401519301519760405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106505760009161065c575b50906024966020959493926080519360c08501519060e08601519261010087015194610120880151966101606101408a015199015199604080519e8f906104fa82611152565b6101005182528f820152015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526040519384809263b3596f0760e01b825260018060a01b0360c05116600483015260018060a01b03165afa91821561065057600092610617575b50604051936105858561111c565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f65750505082936105eb9151601f198583030160608601526113d2565b905160808301520390f35b90919560206101208261060c6001948b51611271565b0197019291016105c9565b9091506020813d602011610648575b81610633602093836111fa565b8101031261064357519038610577565b600080fd5b3d9150610626565b6040513d6000823e3d90fd5b9493929190506020853d602011610693575b8161067b602093836111fa565b810103126106435793519293919290919060246104b4565b3d915061066e565b6020906106a6612679565b82828a010152016103eb565b909a506020813d6020116106de575b816106ce602093836111fa565b810103126106435751993861034d565b3d91506106c1565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610727575b81610715602093836111fa565b81010312610643575160a052386102cd565b3d9150610708565b90506020813d602011610759575b8161074a602093836111fa565b81010312610643575138610283565b3d915061073d565b90506020813d60201161078b575b8161077c602093836111fa565b81010312610643575138610246565b3d915061076f565b9093506020813d6020116107bf575b816107af602093836111fa565b81010312610643575192386101f4565b3d91506107a2565b60606064358282020136036023190112610643576040516107e781611137565b6064356060830201602401356001600160a01b03811690036106435760643560608302016024810135825261084b9188916108249060440161121b565b602082015261083b6064606086028135010161121b565b604082015260843590878661177e565b6108558287611754565b526108608186611754565b5060001981146106e657600101610199565b60209061087d61170f565b8282890101520161018d565b9091506020813d6020116108c5575b816108a5602093836111fa565b8101031261064357516001600160a01b0381168103610643579038610154565b3d9150610898565b3461064357602080600319360112610643576108ef6108ea6110f0565b611bdd565b906040519080825282519261018090818385015261098560018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610958610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a27578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a44838f8690600196030187528d516115b6565b9b019301930191949392906109db565b3461064357604036600319011261064357610a6d6110f0565b6024359060ff8216820361064357610a9c91610a88916126f7565b6040519182916020835260208301906115b6565b0390f35b346106435760031960603682011261064357610aba6110f0565b602435906001600160401b039283831161064357610160809184360301126106435760405190810181811085821117610bc557604052610afc8360040161121b565b81526024830135602082015260448301356040820152606483013584811161064357610b2e906004369186010161156f565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b5d60e4840161121b565b60e082015261010483013561010082015261012483013593841161064357610144610bb193610b95610a9c966004369184010161156f565b6101208401520135610140820152610bab61125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461064357606036600319011261064357610bf46110f0565b610bfc611106565b90610c0561125b565b610c0d61164b565b50610c1782611bdd565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829088165afa9081156106505760009161101d575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829089165afa90811561065057600091610feb575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152878116602483015290911690602081604481855afa90811561065057600091610fb9575b5083838103116106e657879386519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156106505760009c610f85575b50610d626040518060e05261116e565b60e05152602060e051015203604060e0510152606060e0510152608060e051015260a060e051015260c060e051015260e08051015261010060e051015261012060e051015261014060e051015260a082019283515191610dc1836116f8565b92610dcf60405194856111fa565b808452610dde601f19916116f8565b0160005b818110610f6e57505060005b855180519060ff831691821015610e325781610e1c8a610e15610e2d969561044595611754565b5188612a5a565b610e268289611754565b5286611754565b610dee565b610e89868589888d6020830151946020604085015195606086015194608087015194604051809b81948293636eb1769f60e11b84526004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa90811561065057600091610f38575b610a9c975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610ede8d611152565b60e0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906113d2565b90506020873d602011610f66575b81610f53602093836111fa565b8101031261064357610a9c965190610ea5565b3d9150610f46565b602090610f79612679565b82828801015201610de2565b909b506020813d602011610fb1575b81610fa1602093836111fa565b8101031261064357519a38610d52565b3d9150610f94565b90506020813d602011610fe3575b81610fd4602093836111fa565b81010312610643575188610cd4565b3d9150610fc7565b90506020813d602011611015575b81611006602093836111fa565b81010312610643575186610c8f565b3d9150610ff9565b90506020813d602011611047575b81611038602093836111fa565b81010312610643575185610c54565b3d915061102b565b346106435760e0366003190112610643576110686110f0565b6001600160a01b039060243582811681036106435760603660431901126106435761109284611137565b60443583811681036106435784526064358381168103610643576020850152608435928316830361064357836110e19360406101209601526110d261122f565b916110db611245565b9361177e565b6110ee6040518092611271565bf35b600435906001600160a01b038216820361064357565b602435906001600160a01b038216820361064357565b608081019081106001600160401b03821117610bc557604052565b606081019081106001600160401b03821117610bc557604052565b6101a081019081106001600160401b03821117610bc557604052565b61016081019081106001600160401b03821117610bc557604052565b61012081019081106001600160401b03821117610bc557604052565b61018081019081106001600160401b03821117610bc557604052565b61010081019081106001600160401b03821117610bc557604052565b6101c081019081106001600160401b03821117610bc557604052565b90601f801991011681019081106001600160401b03821117610bc557604052565b35906001600160a01b038216820361064357565b60a435906001600160a01b038216820361064357565b60c435906001600160a01b038216820361064357565b604435906001600160a01b038216820361064357565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161144461016093846102608801526103008701906112f6565b9060e083015116610280860152610100808301516102a087015261147c610120928385015161019f19898303016102c08a01526112f6565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115255750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b84806115448f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bc557601f01601f191660200190565b81601f820112156106435780359061158682611554565b9261159460405194856111fa565b8284526020838301011161064357816000926020809301838601378301015290565b9061163d60018060a01b0380845116835260208401516020840152604084015160408401526115f460608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b6040519061165882611152565b604051610180836116688361116e565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b6001600160401b038111610bc55760051b60200190565b6040519061171c8261118a565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117685760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361178b61170f565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065057600095611a41575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561065057600092611a0d575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610650576000946119d9575b506040516370a0823160e01b815287810186905294602086602481855afa958615610650576000966119a5575b50604051906370a0823160e01b825288820152602081602481855afa968715610650578a9160009861196d575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065057600098611936575b50604051986119088a61118a565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611965575b81611951602093836111fa565b8101031261196257505196386118fa565b80fd5b3d9150611944565b9150966020823d60201161199d575b81611989602093836111fa565b8101031261196257505195899060246118be565b3d915061197c565b90956020823d6020116119d1575b816119c0602093836111fa565b810103126119625750519438611891565b3d91506119b3565b90936020823d602011611a05575b816119f4602093836111fa565b810103126119625750519238611864565b3d91506119e7565b90916020823d602011611a39575b81611a28602093836111fa565b81010312611962575051903861182c565b3d9150611a1b565b6020959195813d602011611aa6575b81611a5d602093836111fa565b81010312611aa2576040519160208301908382106001600160401b03831117611a8f57506040525181529360206117e3565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a50565b519060ff8216820361064357565b51906001600160a01b038216820361064357565b51906001600160401b038216820361064357565b51906cffffffffffffffffffffffffff8216820361064357565b602081830312610643578051906001600160401b038211610643570181601f82011215610643578051611b3081611554565b92611b3e60405194856111fa565b8184526020828401011161064357611b5c91602080850191016112d3565b90565b60405190611b6c8261116e565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106e65760010190565b6301e133809080600019048211811515166106e6570290565b610120526000610160604051611bf2816111a6565b604051611bfe816111c2565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361012051165afa80156106505760006101605261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0361012051165afa91821561065057600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361012051165afa918215610650576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0361012051165afa92831561065057600093612591575b506040516355d3f8af60e11b815261012051602090829060049082906001600160a01b03165afa9081156106505760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0361012051165afa9485156106505760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361012051165afa918215610650576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0361012051165afa948515610650576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0361012051165afa9889156106505760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0361012051165afa9384156106505760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0361012051165afa92831561065057600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0361012051165afa9485156106505760009561235b575b50604051634fd41dad60e11b8152600481018d905261012051602090829060249082906001600160a01b03165afa80156106505760006101405261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361012051165afa9b8c156106505760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610650576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106505760006101e052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106505760009261226d575b506040516341976e0960e01b81526001600160a01b0384811660048301526101205191959160209187916024918391165afa94851561065057600095612239575b506040516101a08181526370a0823160e01b9091526101205181516001600160a01b039182166004909101529051602091602490829085165afa806101c05215610650576000906101c051612201575b61207660405180610180526111c2565b60018060a01b0316610180515260206101805101526101e05160406101805101526060610180510152608061018051015260018060a01b031660a061018051015260c061018051015260e06101805101526120d660ff61016051166116f8565b976120e4604051998a6111fa565b60ff61016051168952601f196120ff60ff61016051166116f8565b0160005b8181106121e957505060005b60ff610160511660ff82161015612151578061213161214c92610120516126f7565b61213e60ff83168d611754565b5261044560ff82168c611754565b61210f565b5091939597909294969861217b6001600160401b03612174816101405116611bc4565b9216611bc4565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111a6565b610180518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b5f565b9201015201612103565b905060203d602011612232575b61221b816101a0516111fa565b60206101a051809281010312610643575190612066565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261064357519338612016565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611afe565b9038611fd5565b6020813d6020116122be575b816122ab602093836111fa565b8101031261064357516101e05238611fa5565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f74565b909b506020813d602011612317575b816122ff602093836111fa565b810103126106435761231090611ad0565b9a38611f44565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b810103126106435761234990611ad0565b6101405238611f0d565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b81010312610643576040519061238f826111c2565b61239881611ad0565b82526123a660208201611ad0565b60208301526123b760408201611ad0565b60408301526123c860608201611ad0565b60608301526123d960808201611ae4565b60808301526123ea60a08201611ae4565b60a083015260c081015164ffffffffff811681036106435760c08301526124139060e001611aae565b60e08201529338611ece565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261064357519138611e9b565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261064357519238611e69565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261064357519738611e37565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261064357519338611e05565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261064357519038611dd3565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261064357519338611da1565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b81010312610643575138611d6f565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261064357519138611d39565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b81010312610643576125f290611abc565b9038611d07565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b810103126106435761262e90611abc565b9038611cd5565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b810103126106435761266790611aae565b6101605238611ca3565b3d9150612649565b60405190612686826111de565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064357565b90612700611b5f565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161116e565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119625750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261196257508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611962575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119625750612a4760e08651926129d2846111c2565b6129db81611aae565b84526129e960208201611abc565b60208501526129f9888201611abc565b88850152612a0960608201611ad0565b6060850152612a1a60808201611ad0565b6080850152612a2b60a08201611ad0565b60a0850152612a3c60c08201611ad0565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065057600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065057600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106505760009d612bd3575b50604051809e612b7f826111de565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119625750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119625750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611962575051906020612aab565b3d9150612c4f56fea2646970667358221220c6be69eb7ec27c26eaf24f470fffac8cc64610bb460378741cb6a05b4fd199b164736f6c63430008100033", - "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1931:25;;1061:2431;;;;;;1931:25;;;;;;;1061:2431;1931:25;;;1061:2431;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::i;:::-;;;;;;;;;2078:10;;1061:2431;2090:15;1061:2431;;;;;2090:15;;;;-1:-1:-1;;1061:2431:0;;-1:-1:-1;;;2262:33:0;;-1:-1:-1;;;;;1061:2431:0;;;;;2262:33;;1061:2431;;;;;;;;;;;;;;2262:33;1061:2431;-1:-1:-1;;;;;1061:2431:0;;2262:33;;;;;;;1061:2431;2262:33;;;2073:129;1061:2431;;;:::i;:::-;;8351:12:1;;;:::i;:::-;;;1061:2431:0;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8400:24:1;;1061:2431:0;;;;;;;;;;;8400:24:1;;;;;;;1061:2431:0;8400:24:1;;;2073:129:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8460:30:1;;1061:2431:0;;;;;;;;;;;8460:30:1;;;;;;;1061:2431:0;8460:30:1;;;2073:129:0;-1:-1:-1;8351:12:1;8587:18;;1061:2431:0;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8634:70:1;;1061:2431:0;;;;;;;;;;;;;;;;;8634:70:1;;;;;;1061:2431:0;;8634:70:1;;;2073:129:0;1061:2431;;;;;;;;;8784:18:1;8351:12;8784:18;;:25;1061:2431:0;8784:25:1;;;8827:27;1061:2431:0;8827:27:1;;1061:2431:0;;8873:28:1;;1061:2431:0;8915:23:1;8351:12;8915:23;;;1061:2431:0;;;;;;;8957:28:1;;1061:2431:0;;9000:24:1;1061:2431:0;9000:24:1;;1061:2431:0;9048:33:1;1061:2431:0;9048:33:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;9104:54:1;;1061:2431:0;;;;;;;;;9104:54:1;;1061:2431:0;9104:54:1;;;;;;;1061:2431:0;9104:54:1;;;2073:129:0;1061:2431;;;;;;;;:::i;:::-;;;;;;;;8542:623:1;;1061:2431:0;;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;8351:12:1;1061:2431:0;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;;8542:623:1;;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;;8351:12:1;9267:25;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1061:2431:0;9367:3:1;1061:2431:0;8351:12:1;9267:25;;9333;1061:2431:0;;;;;9329:36:1;;;;1061:2431:0;9392:71:1;9367:3;1061:2431:0;9425:28:1;1061:2431:0;;;;;;9425:28:1;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;1061:2431:0;;;9380:83:1;;:::i;:::-;;;1061:2431:0;;;9380:83:1;;:::i;:::-;;9367:3;:::i;:::-;9316:11;;9329:36;;;;;;8351:12;9575:26;1061:2431:0;9575:26:1;;1061:2431:0;9636:32:1;1061:2431:0;9636:32:1;;1061:2431:0;9703:32:1;1061:2431:0;;8351:12:1;1061:2431:0;9703:32:1;;1061:2431:0;9756:18:1;;1061:2431:0;;;;;;;;;;;9801:32:1;;1061:2431:0;;;;;;;;;9801:32:1;;1061:2431:0;;;;;;;;;;;;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;;9311:159;9886:16;;1061:2431:0;9886:16:1;1061:2431:0;9886:16:1;;;;8351:12;9886:16;;1061:2431:0;9886:16:1;;1061:2431:0;9925:20:1;1061:2431:0;9925:20:1;;1061:2431:0;9977:29:1;1061:2431:0;9977:29:1;;1061:2431:0;10029:20:1;8542:623;10029:20;;1061:2431:0;10081:29:1;1061:2431:0;8542:623:1;10081:29;;1061:2431:0;10140:27:1;;1061:2431:0;;;;;;;;;;;:::i;:::-;;;;;9489:687:1;;;1061:2431:0;9489:687:1;1061:2431:0;;9489:687:1;;1061:2431:0;8351:12:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;9489:687:1;;;1061:2431:0;;;;;;;;;;2411:38;;1061:2431;;;;;;;;;2411:38;;1061:2431;;;;;;;2411:38;;;;;;;1061:2431;2411:38;;;9311:159:1;1061:2431:0;;;;;;;:::i;:::-;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;;;;;;;;;;;;;;;;;8351:12:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8351:12:1;1061:2431:0;;;;;;;;;;;8542:623:1;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;2411:38;;;;1061:2431;2411:38;;1061:2431;2411:38;;;;;;1061:2431;2411:38;;;:::i;:::-;;;1061:2431;;;;;2411:38;;;;1061:2431;;;;2411:38;;;-1:-1:-1;2411:38:0;;;1061:2431;;;;;;;;;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;1061:2431:0;9801:32:1;;;;;;1061:2431:0;9801:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;;;;-1:-1:-1;9801:32:1;;1061:2431:0;;;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;1061:2431:0;9104:54:1;;1061:2431:0;9104:54:1;;;;;;1061:2431:0;9104:54:1;;;:::i;:::-;;;1061:2431:0;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;1061:2431:0;;;;;;;;;;;;8634:70:1;1061:2431:0;8634:70:1;;1061:2431:0;8634:70:1;;;;;;1061:2431:0;8634:70:1;;;:::i;:::-;;;1061:2431:0;;;;;;8634:70:1;;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;1061:2431:0;8460:30:1;;1061:2431:0;8460:30:1;;;;;;1061:2431:0;8460:30:1;;;:::i;:::-;;;1061:2431:0;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;1061:2431:0;8400:24:1;;1061:2431:0;8400:24:1;;;;;;1061:2431:0;8400:24:1;;;:::i;:::-;;;1061:2431:0;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;2262:33:0;;;;1061:2431;2262:33;;1061:2431;2262:33;;;;;;1061:2431;2262:33;;;:::i;:::-;;;1061:2431;;;;;2262:33;;;;;;;-1:-1:-1;2262:33:0;;2107:3;1061:2431;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;2132:63;;1061:2431;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2132:63;;;;:::i;:::-;2120:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2431:0;;;;;;2078:10;;1061:2431;;;;;:::i;:::-;;;;;;;;;;1931:25;;;;1061:2431;1931:25;;1061:2431;1931:25;;;;;;1061:2431;1931:25;;;:::i;:::-;;;1061:2431;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;1931:25;;;;;;;-1:-1:-1;1931:25:0;;1061:2431;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8351:12:1;;;:::i;:::-;1061:2431:0;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;8400:24:1;;1061:2431:0;;;;8400:24:1;;1061:2431:0;;;;;;;;8400:24:1;;;;;;;1061:2431:0;8400:24:1;;;1061:2431:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;8460:30:1;;1061:2431:0;8400:24:1;;1061:2431:0;;;;;;;;8460:30:1;;;;;;;1061:2431:0;8460:30:1;;;1061:2431:0;-1:-1:-1;8587:18:1;;1061:2431:0;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;8634:70:1;;1061:2431:0;;;;;;;;;;;;8400:24:1;1061:2431:0;;;;8634:70:1;;;;;;;1061:2431:0;8634:70:1;;;1061:2431:0;;;;;;;;;8784:18:1;;;;:25;1061:2431:0;8784:25:1;;;8827:27;1061:2431:0;8827:27:1;;1061:2431:0;8873:28:1;1061:2431:0;8873:28:1;;1061:2431:0;8915:23:1;;;;;1061:2431:0;;;;;;;8957:28:1;;1061:2431:0;;9000:24:1;;;;1061:2431:0;9048:33:1;8400:24;9048:33;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;9104:54:1;;1061:2431:0;;;;;;;9104:54:1;;1061:2431:0;9104:54:1;;;;;;;1061:2431:0;9104:54:1;;;1061:2431:0;;;;;;;;;:::i;:::-;;;;8400:24:1;1061:2431:0;8542:623:1;;1061:2431:0;;;;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;8915:23:1;1061:2431:0;8542:623:1;;1061:2431:0;;;8542:623:1;;1061:2431:0;9000:24:1;1061:2431:0;8542:623:1;;1061:2431:0;;8542:623:1;;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;8542:623:1;1061:2431:0;8542:623:1;;1061:2431:0;;9267:25:1;;;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1061:2431:0;9367:3:1;9333:25;;1061:2431:0;;;;;;9329:36:1;;;;;;9425:28;9392:71;9425:28;;9367:3;9425:28;;9380:83;9425:28;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;;;;:::i;:::-;;;;:::i;9367:3::-;9316:11;;9329:36;9801:32;9329:36;;;;;8400:24;9575:26;;1061:2431:0;9636:32:1;8400:24;1061:2431:0;9636:32:1;;1061:2431:0;9703:32:1;1061:2431:0;9703:32:1;;1061:2431:0;9756:18:1;8915:23;9756:18;;1061:2431:0;;;;;;;;;;;;;9801:32:1;;1061:2431:0;9801:32:1;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;9801:32:1;;;-1:-1:-1;;;;;1061:2431:0;9801:32:1;;;;;;;1061:2431:0;9801:32:1;;;9311:159;1061:2431:0;9886:16:1;;9000:24;9886:16;;1061:2431:0;9925:20:1;1061:2431:0;9925:20:1;;1061:2431:0;9977:29:1;8542:623;9977:29;;1061:2431:0;10029:20:1;8542:623;10029:20;;1061:2431:0;10081:29:1;1061:2431:0;8542:623:1;10081:29;;1061:2431:0;10140:27:1;;1061:2431:0;;;;;;;;:::i;:::-;;;;;8400:24:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;;9489:687:1;;1061:2431:0;8915:23:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;9000:24:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;8542:623:1;9489:687;;1061:2431:0;;9489:687:1;;1061:2431:0;9489:687:1;;;1061:2431:0;;;;;;8400:24:1;1061:2431:0;;8400:24:1;1061:2431:0;;;;:::i;9801:32:1:-;;;8400:24;9801:32;;8400:24;9801:32;;;;;;8400:24;9801:32;;;:::i;:::-;;;1061:2431:0;;;;;;;9801:32:1;;;;;;-1:-1:-1;9801:32:1;;1061:2431:0;8400:24:1;1061:2431:0;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;8400:24;9104:54;;8400:24;9104:54;;;;;;8400:24;9104:54;;;:::i;:::-;;;1061:2431:0;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;8634:70;;;8400:24;8634:70;;8400:24;8634:70;;;;;;8400:24;8634:70;;;:::i;:::-;;;1061:2431:0;;;;;8634:70:1;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;8400:24;8460:30;;8400:24;8460:30;;;;;;8400:24;8460:30;;;:::i;:::-;;;1061:2431:0;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2467:1023;;;;;;1061:2431;;:::i;:::-;-1:-1:-1;1061:2431:0;;2768:29;;;;1061:2431;2833:31;;;;1061:2431;;;-1:-1:-1;;;2930:38:0;;-1:-1:-1;;;;;1061:2431:0;;;2930:38;;;;1061:2431;;;;;2930:38;;1061:2431;;;;;;;;;;;;2768:29;1061:2431;;;;;;;2930:38;;;;;;;-1:-1:-1;2930:38:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;;-1:-1:-1;;;3163:34:0;;-1:-1:-1;;;;;1061:2431:0;;;3163:34;;;1061:2431;;;;;2768:29;1061:2431;;;;;;;;;;2768:29;;1061:2431;;;;;3163:34;;;;;;;;;;-1:-1:-1;3163:34:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3216:25:0;;-1:-1:-1;;;;;1061:2431:0;;;3216:25;;;1061:2431;;;;2768:29;1061:2431;;;3216:25;;;;;;;;-1:-1:-1;3216:25:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3270:34:0;;;;;1061:2431;;;;2768:29;1061:2431;;;3270:34;;;;;;;;-1:-1:-1;3270:34:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;3335:34;;;;;1061:2431;2768:29;3335:34;1061:2431;3335:34;;;;;;;;;;;-1:-1:-1;3335:34:0;;;2467:1023;-1:-1:-1;1061:2431:0;2833:31;1061:2431;-1:-1:-1;;;3434:42:0;;;;;1061:2431;;;;;;2768:29;;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;3434:42;;;;;;;-1:-1:-1;3434:42:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;:::i;:::-;;;2768:29;2988:497;;1061:2431;2833:31;2988:497;;1061:2431;2988:497;;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;2467:1023;:::o;3434:42::-;;;2768:29;3434:42;;2768:29;3434:42;;;;;;2768:29;3434:42;;;:::i;:::-;;;1061:2431;;;;;;3434:42;;;;1061:2431;;;3434:42;;;-1:-1:-1;3434:42:0;;3335:34;;;;2768:29;3335:34;;2768:29;3335:34;;;;;;2768:29;3335:34;;;:::i;:::-;;;1061:2431;;;;-1:-1:-1;1061:2431:0;;;;;3335:34;;;;;-1:-1:-1;3335:34:0;;3270;;;2768:29;3270:34;;2768:29;3270:34;;;;;;2768:29;3270:34;;;:::i;:::-;;;1061:2431;;;;;;3270:34;;;;;;;-1:-1:-1;3270:34:0;;3216:25;;;2768:29;3216:25;;2768:29;3216:25;;;;;;2768:29;3216:25;;;:::i;:::-;;;1061:2431;;;;;;3216:25;;;;;;;-1:-1:-1;3216:25:0;;3163:34;;;2768:29;3163:34;;2768:29;3163:34;;;;;;2768:29;3163:34;;;:::i;:::-;;;1061:2431;;;;;;3163:34;;;;;;;-1:-1:-1;3163:34:0;;2930:38;2768:29;2930:38;;;;;2768:29;2930:38;;;;;;2768:29;2930:38;;;:::i;:::-;;;1061:2431;;;;2833:31;1061:2431;;2768:29;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;-1:-1:-1;2833:31:0;1061:2431;;;;;2768:29;2930:38;;1061:2431;-1:-1:-1;;;1061:2431:0;;;;;;;;;;;;2930:38;;;-1:-1:-1;2930:38:0;;1061:2431;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2431:0;;;;4218:18:1;;;;;;;;;;;:::o;6145:2007::-;;;-1:-1:-1;1061:2431:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007:1;1061:2431:0;;;;;;;;;;;;;;;6236:17:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6236:17:1;;;;;;-1:-1:-1;1061:2431:0;6236:17:1;;;6145:2007;1061:2431:0;;;;;;;6279:17:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;;6145:2007;1061:2431:0;;;;;;;6331:26:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;;6145:2007;1061:2431:0;;;;;;;6380:21:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6433:26:1;;6145:2007;6236:15;1061:2431:0;;;;6236:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6433:26:1;;;;;;;-1:-1:-1;6433:26:1;;;6145:2007;1061:2431:0;;;;;;;6496:31:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;;6145:2007;1061:2431:0;;;;;;;6564:31:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;;6145:2007;1061:2431:0;;;;;;;6626:25:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;;6145:2007;1061:2431:0;;;;;;;6676:22:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;;6145:2007;1061:2431:0;;;;;;;6723:19:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;;6145:2007;1061:2431:0;;;;;;;6767:19:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;;6145:2007;1061:2431:0;;;;;;;6831:19:1;;1061:2431:0;;6236:17:1;1061:2431:0;;;;;;6145:2007:1;6236:15;1061:2431:0;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6883:32:1;;6236:17;6883:32;;1061:2431:0;;;6145:2007:1;6236:15;1061:2431:0;;;;;;;;-1:-1:-1;;;;;1061:2431:0;6883:32:1;;;;;;-1:-1:-1;1061:2431:0;6883:32:1;;;6145:2007;1061:2431:0;;;;;;;6948:32:1;;6236:17;6948:32;;1061:2431:0;;;;;;;;;;6145:2007:1;6236:15;1061:2431:0;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7070:25:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6236:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7070:25:1;;;;;;;-1:-1:-1;7070:25:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7113:27:1;;1061:2431:0;;6236:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7113:27:1;;;;;;-1:-1:-1;7113:27:1;;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7182:23:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6236:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7182:23:1;;;;;;;-1:-1:-1;7182:23:1;;;6145:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7257:34:1;;-1:-1:-1;;;;;1061:2431:0;;;6236:17:1;7257:34;;1061:2431:0;6145:2007:1;6236:15;1061:2431:0;;;;;;;;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;;6145:2007;-1:-1:-1;1061:2431:0;;7315:42:1;;;;-1:-1:-1;;;7315:42:1;;;6145:2007;6236:15;7315:42;;-1:-1:-1;;;;;1061:2431:0;;;6236:17:1;7315:42;;;1061:2431:0;7315:42:1;;1061:2431:0;;;;7315:42:1;;1061:2431:0;;7315:42:1;;;;;;;;-1:-1:-1;7315:42:1;;;;;6145:2007;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;7016:348:1;;1061:2431:0;7113:27:1;1061:2431:0;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;;;;;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;7016:348:1;;1061:2431:0;;;;6219:34:1;1061:2431:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6219:34:1;1061:2431:0;;;;;;;;6219:34:1;1061:2431:0;;:::i;:::-;;-1:-1:-1;1061:2431:0;;;;;;7448:11:1;;-1:-1:-1;7476:3:1;1061:2431:0;;6219:34:1;1061:2431:0;;;;7461:13:1;;;;7501:24;;7476:3;7501:24;6145:2007;7501:24;;:::i;:::-;7489:36;1061:2431:0;;;7489:36:1;;:::i;:::-;;;1061:2431:0;;;7489:36:1;;:::i;7476:3::-;7448:11;;7461:13;;;;;;;;;;;7866:38;-1:-1:-1;;;;;7775:38:1;6856:59;1061:2431:0;6856:59:1;1061:2431:0;7775:38:1;:::i;:::-;1061:2431:0;;7866:38:1;:::i;:::-;7970:27;1061:2431:0;;7970:27:1;1061:2431:0;7970:27:1;;4218:18;1061:2431:0;8063:27:1;;4218:18;1061:2431:0;;;;;;;;:::i;:::-;;;;;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;6145:2007:1;7551:596;;1061:2431:0;;7551:596:1;;1061:2431:0;;7551:596:1;;1061:2431:0;6145:2007:1;:::o;1061:2431:0:-;;;;;;;;:::i;:::-;;;;;;;;7315:42:1;;;1061:2431:0;7315:42:1;1061:2431:0;7315:42:1;;;;;;;;;:::i;:::-;1061:2431:0;7315:42:1;1061:2431:0;7315:42:1;;;;1061:2431:0;;;;;7315:42:1;;;;;;;;7257:34;;;;1061:2431:0;7257:34:1;;1061:2431:0;7257:34:1;;;;;;1061:2431:0;7257:34:1;;;:::i;:::-;;;1061:2431:0;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7113:27;1061:2431:0;7113:27:1;;1061:2431:0;7113:27:1;;;;;;1061:2431:0;7113:27:1;;;:::i;:::-;;;1061:2431:0;;;;;7113:27:1;;;;;;;;-1:-1:-1;7113:27:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;;;;:::i;:::-;;;;;6948:32;;;;1061:2431:0;6948:32:1;;1061:2431:0;6948:32:1;;;;;;1061:2431:0;6948:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;6883;1061:2431:0;6883:32:1;;1061:2431:0;6883:32:1;;;;;;1061:2431:0;6883:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6883:32:1;;;;;;;-1:-1:-1;6883:32:1;;6831:19;;;;1061:2431:0;6831:19:1;;1061:2431:0;6831:19:1;;;;;;1061:2431:0;6831:19:1;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;6767;;;;1061:2431:0;6767:19:1;;1061:2431:0;6767:19:1;;;;;;1061:2431:0;6767:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;6723;;;;1061:2431:0;6723:19:1;;1061:2431:0;6723:19:1;;;;;;1061:2431:0;6723:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;6676:22;;;;1061:2431:0;6676:22:1;;1061:2431:0;6676:22:1;;;;;;1061:2431:0;6676:22:1;;;:::i;:::-;;;1061:2431:0;;;;;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;6626:25;;;;1061:2431:0;6626:25:1;;1061:2431:0;6626:25:1;;;;;;1061:2431:0;6626:25:1;;;:::i;:::-;;;1061:2431:0;;;;;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;6564:31;;;;1061:2431:0;6564:31:1;;1061:2431:0;6564:31:1;;;;;;1061:2431:0;6564:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;6496;;;;1061:2431:0;6496:31:1;;1061:2431:0;6496:31:1;;;;;;1061:2431:0;6496:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;6433:26;;;1061:2431:0;6433:26:1;;1061:2431:0;6433:26:1;;;;;;1061:2431:0;6433:26:1;;;:::i;:::-;;;1061:2431:0;;;;;6433:26:1;;;;;;-1:-1:-1;6433:26:1;;6380:21;;;;1061:2431:0;6380:21:1;;1061:2431:0;6380:21:1;;;;;;1061:2431:0;6380:21:1;;;:::i;:::-;;;1061:2431:0;;;;;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;6331:26;;;;1061:2431:0;6331:26:1;;1061:2431:0;6331:26:1;;;;;;1061:2431:0;6331:26:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;6279:17;;;;1061:2431:0;6279:17:1;;1061:2431:0;6279:17:1;;;;;;1061:2431:0;6279:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;6236;1061:2431:0;6236:17:1;;1061:2431:0;6236:17:1;;;;;;1061:2431:0;6236:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6236:17:1;;;;;;;-1:-1:-1;6236:17:1;;1061:2431:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;10185:782:1:-;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10321:25:1;;1061:2431:0;;;;10321:25:1;;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;;;;;10321:25:1;;1061:2431:0;;;;10321:25:1;;;;;;;-1:-1:-1;10321:25:1;;;10185:782;1061:2431:0;;10409:15:1;;;;1061:2431:0;;;;;;-1:-1:-1;;;;;10452:32:1;10321:25;10452:32;;;;1061:2431:0;;;;;;;;;;;;;;10504:33:1;;;;;;;;;-1:-1:-1;10504:33:1;;;10185:782;10574:35;10321:25;10574:35;;1061:2431:0;10574:35:1;;1061:2431:0;;10638:27:1;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;10681:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10681:29:1;;;10185:782;10742:19;;;;1061:2431:0;;;;;;;;;;;;;;;10727:35:1;;10321:25;10727:35;;1061:2431:0;10727:35:1;;;;;;;;;;-1:-1:-1;10727:35:1;;;10185:782;1061:2431:0;;;10823:19:1;1061:2431:0;10823:19:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;10860:31:1;;;;10321:25;10860:31;-1:-1:-1;10860:31:1;;;;;;;-1:-1:-1;10860:31:1;;;10185:782;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10914:39:1;;1061:2431:0;;10321:25:1;10914:39;;1061:2431:0;;;;;;;10914:39:1;;1061:2431:0;10914:39:1;;;;;;;-1:-1:-1;10914:39:1;;;10185:782;1061:2431:0;;;;;;;;:::i;:::-;;10366:596:1;;1061:2431:0;10366:596:1;;1061:2431:0;10366:596:1;;;1061:2431:0;10452:32:1;10366:596;;1061:2431:0;;10366:596:1;;1061:2431:0;10638:27:1;10366:596;;1061:2431:0;;10366:596:1;;1061:2431:0;10366:596:1;;1061:2431:0;10366:596:1;;;1061:2431:0;10366:596:1;;;1061:2431:0;10185:782:1;:::o;10914:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;10914:39:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10860:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10727:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;10727:35:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10681:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10504:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;10321:25:1;10504:33;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10321:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10321:25:1;;;;;;;;;10971:925;;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11271:63:1;;-1:-1:-1;;;;;1061:2431:0;;;11271:63:1;;;1061:2431:0;;;;;;;;;;;;;;;11271:63:1;1061:2431:0;;;;11271:63:1;;;;;;;-1:-1:-1;11271:63:1;;;10971:925;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11353:57:1;;-1:-1:-1;;;;;1061:2431:0;;;11271:63:1;11353:57;;1061:2431:0;;;;;;;;;11271:63:1;;1061:2431:0;;;;;;11353:57:1;;;;;;;-1:-1:-1;11353:57:1;;;10971:925;-1:-1:-1;11271:63:1;11438:22;;1061:2431:0;;11480:14:1;;;1061:2431:0;11531:31:1;;;1061:2431:0;;11591:23:1;;1061:2431:0;11630:10:1;;;;11657:11;;;1061:2431:0;;11689:15:1;;1061:2431:0;11725:15:1;;;1061:2431:0;11758:12:1;;;;11793:17;;;1061:2431:0;;;;;-1:-1:-1;;;11835:47:1;;-1:-1:-1;;;;;1061:2431:0;;;11271:63:1;11835:47;;1061:2431:0;;11758:12:1;;1061:2431:0;;;;;;;;;;11630:10:1;;1061:2431:0;;;;;11835:47:1;;1061:2431:0;11835:47:1;11271:63;11835:47;;;;;;;-1:-1:-1;11835:47:1;;;10971:925;1061:2431:0;;;;;;;;:::i;:::-;;;11271:63:1;11170:721;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;11170:721:1;;1061:2431:0;11630:10:1;11170:721;;1061:2431:0;11531:31:1;11170:721;;1061:2431:0;;11170:721:1;;1061:2431:0;11657:11:1;11170:721;;1061:2431:0;;11170:721:1;;1061:2431:0;11725:15:1;11170:721;;1061:2431:0;11758:12:1;11170:721;;1061:2431:0;11793:17:1;11170:721;;1061:2431:0;11170:721:1;;;1061:2431:0;11170:721:1;;;1061:2431:0;11170:721:1;;;1061:2431:0;10971:925:1;:::o;11835:47::-;;;11271:63;11835:47;;11271:63;11835:47;;;;;;11271:63;11835:47;;;:::i;:::-;;;1061:2431:0;;;;;;11835:47:1;;;;;;;-1:-1:-1;11835:47:1;;11353:57;;11271:63;11353:57;;11271:63;11353:57;;;;;;11271:63;11353:57;;;:::i;:::-;;;1061:2431:0;;;;;;;;:::i;:::-;11353:57:1;;;;;;-1:-1:-1;11353:57:1;;11271:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;11271:63:1;;;;;;-1:-1:-1;11271:63:1;", + "object": "0x6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec14611045575080635346cc1914610bcd578063c2815c0b14610a92578063cbe293fa14610a46578063d4fc9fc6146108bf5763ec7d7f7a1461006257600080fd5b346106445760e0366003190112610644576004356001600160a01b03811690819003610644576100906110fc565b610098611235565b916001600160401b038060643511610644573660236064350112156106445760643560040135116106445736602460606064356004013502606435010111610644576084356001600160a01b0381169003610644576004926100f8611209565b602061010261121f565b936000606060405161011381611112565b8281528185820152610123611630565b6040820152015260405196878092631f94a27560e31b82525afa9485156106515760009561087b575b5061015c606435600401356116e4565b9361016a60405195866111d4565b60046064350135808652601f1990610181906116e4565b0160005b81811061086457505060005b6064356004013581106107b9575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa90811561065157600091610787575b506101f5611630565b506101ff82611bc9565b60c0526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa90811561065157600091610755575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561065157600091610723575b5060c0515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa80156106515760006080526106f0575b5082828103116106da5760249260c051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106515760009b6106a6575b506103556040518060a052611164565b60a05152608051602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a060c051015151936103b7856116e4565b946103c560405196876111d4565b8086526103d4601f19916116e4565b0160005b81811061068f57505060005b60a060c0510151805160ff8316101561043d5790610417610438926104106084359160ff851690611740565b5187612a43565b61042460ff831689611740565b5261043260ff821688611740565b50611b9f565b6103e4565b50508585858560c0519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106515760009161065d575b5060c0519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6104eb82611148565b60a051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa91821561065157600092610618575b506040519361058685611112565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f75750505082936105ec9151601f198583030160608601526113ac565b905160808301520390f35b90919560206101208261060d6001948b5161124b565b0197019291016105ca565b9091506020813d602011610649575b81610634602093836111d4565b8101031261064457519084610578565b600080fd5b3d9150610627565b6040513d6000823e3d90fd5b90506020813d602011610687575b81610678602093836111d4565b8101031261064457518a6104a3565b3d915061066b565b60209061069a612662565b82828a010152016103d8565b909a506020813d6020116106d2575b816106c2602093836111d4565b8101031261064457519938610345565b3d91506106b5565b634e487b7160e01b600052601160045260246000fd5b6020813d60201161071b575b81610709602093836111d4565b810103126106445751608052386102c5565b3d91506106fc565b90506020813d60201161074d575b8161073e602093836111d4565b8101031261064457513861027b565b3d9150610731565b90506020813d60201161077f575b81610770602093836111d4565b8101031261064457513861023e565b3d9150610763565b90506020813d6020116107b1575b816107a2602093836111d4565b810103126106445751386101ec565b3d9150610795565b60606064358282020136036023190112610644576040516107d98161112d565b6064356060830201602401356001600160a01b03811690036106445760643560608302016024810135825261083d918591610816906044016111f5565b602082015261082d606460608602813501016111f5565b6040820152608435908a8661176a565b6108478288611740565b526108528187611740565b5060001981146106da57600101610191565b60209061086f6116fb565b82828a01015201610185565b9094506020813d6020116108b7575b81610897602093836111d4565b8101031261064457516001600160a01b038116810361064457933861014c565b3d915061088a565b3461064457602080600319360112610644576108e16108dc6110e6565b611bc9565b906040519080825282519261018090818385015261097760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e060808801519761094a610100998a6102208b01526102a08a01906112d0565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112d0565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a19578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a36838f8690600196030187528d5161159b565b9b019301930191949392906109cd565b3461064457604036600319011261064457610a5f6110e6565b6024359060ff8216820361064457610a8e91610a7a916126e0565b60405191829160208352602083019061159b565b0390f35b346106445760031960603682011261064457610aac6110e6565b602435906001600160401b039283831161064457610160809184360301126106445760405190810181811085821117610bb757604052610aee836004016111f5565b81526024830135602082015260448301356040820152606483013584811161064457610b209060043691860101611554565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b4f60e484016111f5565b60e082015261010483013561010082015261012483013593841161064457610144610ba393610b87610a8e9660043691840101611554565b6101208401520135610140820152610b9d611235565b91612a43565b6040519182916020835260208301906112f5565b634e487b7160e01b600052604160045260246000fd5b3461064457606036600319011261064457610be66110e6565b610bee6110fc565b90610bf7611235565b610bff611630565b50610c0982611bc9565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561065157600093611011575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561065157600094610fdd575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561065157600091610fab575b5082828103116106da57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106515760009b610f77575b5060206040519e8f90610d5c82611164565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610da1846116e4565b93610daf60405195866111d4565b808552610dbe601f19916116e4565b0160005b818110610f6057505060005b60a0860151805160ff83161015610e155790610df588610410610e109460ff851690611740565b610e0260ff831688611740565b5261043260ff821687611740565b610dce565b610e6d8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561065157600092610f2a575b610a8e995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ed082611148565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113ac565b91506020893d602011610f58575b81610f45602093836111d4565b8101031261064457610a8e985191610e89565b3d9150610f38565b602090610f6b612662565b82828901015201610dc2565b909a506020813d602011610fa3575b81610f93602093836111d4565b8101031261064457519938610d4a565b3d9150610f86565b90506020813d602011610fd5575b81610fc6602093836111d4565b81010312610644575188610ccd565b3d9150610fb9565b9093506020813d602011611009575b81610ff9602093836111d4565b8101031261064457519286610c87565b3d9150610fec565b9092506020813d60201161103d575b8161102d602093836111d4565b8101031261064457519185610c49565b3d9150611020565b346106445760e03660031901126106445761105e6110e6565b6001600160a01b03906024358281168103610644576060366043190112610644576110888461112d565b60443583811681036106445784526064358381168103610644576020850152608435928316830361064457836110d79360406101209601526110c8611209565b916110d161121f565b9361176a565b6110e4604051809261124b565bf35b600435906001600160a01b038216820361064457565b602435906001600160a01b038216820361064457565b608081019081106001600160401b03821117610bb757604052565b606081019081106001600160401b03821117610bb757604052565b6101c081019081106001600160401b03821117610bb757604052565b61016081019081106001600160401b03821117610bb757604052565b61012081019081106001600160401b03821117610bb757604052565b61018081019081106001600160401b03821117610bb757604052565b61010081019081106001600160401b03821117610bb757604052565b90601f801991011681019081106001600160401b03821117610bb757604052565b35906001600160a01b038216820361064457565b60a435906001600160a01b038216820361064457565b60c435906001600160a01b038216820361064457565b604435906001600160a01b038216820361064457565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112c05750506000910152565b81810151838201526020016112b0565b906020916112e9815180928185528580860191016112ad565b601f01601f1916010190565b9061139360018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261134760a08501516101c08060a08701528501906112d0565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112d0565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161141e61016093846102808801526103208701906112d0565b9060e0830151166102a0860152610100808301516102c087015261145661012092838501516101bf19898303016102e08a01526112d0565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061150a5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806115298f93600194601f19878303018852516112f5565b9e019301930191949392906114bb565b6001600160401b038111610bb757601f01601f191660200190565b81601f820112156106445780359061156b82611539565b9261157960405194856111d4565b8284526020838301011161064457816000926020809301838601378301015290565b9061162260018060a01b0380845116835260208401516020840152604084015160408401526115d960608501516101608060608701528501906112d0565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112d0565b916101408091015191015290565b6040519061163d82611148565b6040516101a08361164d83611164565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bb75760051b60200190565b6040519061170882611180565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117545760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91939092936117776116fb565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065157600095611a2d575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa918215610651576000926119f9575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610651576000946119c5575b506040516370a0823160e01b815287810186905294602086602481855afa95861561065157600096611991575b50604051906370a0823160e01b825288820152602081602481855afa968715610651578a91600098611959575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065157600098611922575b50604051986118f48a611180565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611951575b8161193d602093836111d4565b8101031261194e57505196386118e6565b80fd5b3d9150611930565b9150966020823d602011611989575b81611975602093836111d4565b8101031261194e57505195899060246118aa565b3d9150611968565b90956020823d6020116119bd575b816119ac602093836111d4565b8101031261194e575051943861187d565b3d915061199f565b90936020823d6020116119f1575b816119e0602093836111d4565b8101031261194e5750519238611850565b3d91506119d3565b90916020823d602011611a25575b81611a14602093836111d4565b8101031261194e5750519038611818565b3d9150611a07565b6020959195813d602011611a92575b81611a49602093836111d4565b81010312611a8e576040519160208301908382106001600160401b03831117611a7b57506040525181529360206117cf565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a3c565b519060ff8216820361064457565b51906001600160a01b038216820361064457565b51906001600160401b038216820361064457565b51906cffffffffffffffffffffffffff8216820361064457565b602081830312610644578051906001600160401b038211610644570181601f82011215610644578051611b1c81611539565b92611b2a60405194856111d4565b8184526020828401011161064457611b4891602080850191016112ad565b90565b60405190611b5882611164565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106da5760010190565b6301e133809080600019048211811515166106da570290565b610100526000610160604051611bde8161119c565b604051611bea816111b8565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361010051165afa801561065157600061014052612626575b506040519063c55dae6360e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ea575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ae575b506040519163300e6beb60e01b835260208360048160018060a01b0361010051165afa9283156106515760009361257a575b506040516355d3f8af60e11b815261010051602090829060049082906001600160a01b03165afa90811561065157600091612548575b506040519363189bb2f160e01b855260208560048160018060a01b0361010051165afa94851561065157600095612514575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361010051165afa918215610651576000926124e0575b50604051936349b270c560e11b855260208560048160018060a01b0361010051165afa948515610651576000956124ac575b5060405197637eb7113160e01b895260208960048160018060a01b0361010051165afa98891561065157600099612478575b50604051926318160ddd60e01b845260208460048160018060a01b0361010051165afa93841561065157600094612444575b506040519163020a17bd60e61b835260208360048160018060a01b0361010051165afa92831561065157600093612410575b5060405163b9f0baf760e01b81526101008051919591869060049082906001600160a01b03165afa94851561065157600095612344575b50604051634fd41dad60e11b8152600481018d905261010051602090829060249082906001600160a01b03165afa801561065157600061012052612308575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361010051165afa9b8c156106515760009c6122cc575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610651576000946122af575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106515760006101605261227b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561065157600092612256575b506040516341976e0960e01b81526001600160a01b0384811660048301526101005191959160209187916024918391165afa94851561065157600095612222575b506040516101808181526370a0823160e01b9091526101005181516001600160a01b039182166004909101528151919291602091602490829085165afa916101a0928084521561065157600092516121ea575b506120696040518060e0526111b8565b60018060a01b031660e05152602060e051015261016051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e0805101526120c060ff61014051166116e4565b976120ce604051998a6111d4565b60ff61014051168952601f196120e960ff61014051166116e4565b0160005b8181106121d257505060005b60ff610140511660ff8216101561213b578061211b61213692610100516126e0565b61212860ff83168d611740565b5261043260ff82168c611740565b6120f9565b509193959790929496986121656001600160401b0361215e816101205116611bb0565b9216611bb0565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61218f8c61119c565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121e0611b4b565b92010152016120ed565b9091506020903d60201161221a575b8061220783602093516111d4565b5180928101031261064457519038612059565b3d91506121f9565b9094506020813d60201161224e575b8161223e602093836111d4565b8101031261064457519338612006565b3d9150612231565b6122749192503d806000833e61226c81836111d4565b810190611aea565b9038611fc5565b6020813d6020116122a7575b81612294602093836111d4565b8101031261064457516101605238611f95565b3d9150612287565b6122c59194503d806000833e61226c81836111d4565b9238611f64565b909b506020813d602011612300575b816122e8602093836111d4565b81010312610644576122f990611abc565b9a38611f34565b3d91506122db565b6020813d60201161233c575b81612321602093836111d4565b810103126106445761233290611abc565b6101205238611efd565b3d9150612314565b909450610100813d61010011612408575b8161236361010093836111d4565b810103126106445760405190612378826111b8565b61238181611abc565b825261238f60208201611abc565b60208301526123a060408201611abc565b60408301526123b160608201611abc565b60608301526123c260808201611ad0565b60808301526123d360a08201611ad0565b60a083015260c081015164ffffffffff811681036106445760c08301526123fc9060e001611a9a565b60e08201529338611ebe565b3d9150612355565b9092506020813d60201161243c575b8161242c602093836111d4565b8101031261064457519138611e87565b3d915061241f565b9093506020813d602011612470575b81612460602093836111d4565b8101031261064457519238611e55565b3d9150612453565b9098506020813d6020116124a4575b81612494602093836111d4565b8101031261064457519738611e23565b3d9150612487565b9094506020813d6020116124d8575b816124c8602093836111d4565b8101031261064457519338611df1565b3d91506124bb565b9091506020813d60201161250c575b816124fc602093836111d4565b8101031261064457519038611dbf565b3d91506124ef565b9094506020813d602011612540575b81612530602093836111d4565b8101031261064457519338611d8d565b3d9150612523565b90506020813d602011612572575b81612563602093836111d4565b81010312610644575138611d5b565b3d9150612556565b9092506020813d6020116125a6575b81612596602093836111d4565b8101031261064457519138611d25565b3d9150612589565b9091506020813d6020116125e2575b816125ca602093836111d4565b81010312610644576125db90611aa8565b9038611cf3565b3d91506125bd565b9091506020813d60201161261e575b81612606602093836111d4565b810103126106445761261790611aa8565b9038611cc1565b3d91506125f9565b6020813d60201161265a575b8161263f602093836111d4565b810103126106445761265090611a9a565b6101405238611c8f565b3d9150612632565b6040519061266f82611148565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064457565b906126e9611b4b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa9283156128ec5760009361298a575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561297f5760009261294f575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128c257908c97969594939291600095612934575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561292957908c9160009a6128f7575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156128ec5760009e6128cd575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128c25760009d612893575b5082519d8e61286181611164565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128bb575b6128aa81836111d4565b8101031261194e5750519b38612853565b503d6128a0565b83513d6000823e3d90fd5b6128e4908493929f3d8091833e61226c81836111d4565b9d9091612823565b85513d6000823e3d90fd5b9150988282813d8311612922575b61290f81836111d4565b8101031261194e57508b905198386127e4565b503d612905565b84513d6000823e3d90fd5b61294891953d8091833e61226c81836111d4565b93386127b0565b90918582813d8311612978575b61296681836111d4565b8101031261194e57505190600461276d565b503d61295c565b50513d6000823e3d90fd5b90928382813d8311612a3c575b6129a181836111d4565b8101031261194e5750612a3060e08651926129bb846111b8565b6129c481611a9a565b84526129d260208201611aa8565b60208501526129e2888201611aa8565b888501526129f260608201611abc565b6060850152612a0360808201611abc565b6080850152612a1460a08201611abc565b60a0850152612a2560c08201611abc565b60c0850152016126cc565b60e0820152913861272a565b503d612997565b9190612a4d612662565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065157600092612c2a575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065157600091612bf0575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106515760009d612bbc575b50604051809e612b6882611148565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612be8575b81612bd7602093836111d4565b8101031261194e5750519b38612b59565b3d9150612bca565b906020823d602011612c22575b81612c0a602093836111d4565b8101031261194e5750612c1c906126cc565b38612ad8565b3d9150612bfd565b90916020823d602011612c57575b81612c45602093836111d4565b8101031261194e575051906020612a94565b3d9150612c3856fea2646970667358221220b3b066a8375c5141c37d3b12d314dc547e05d24827a25e994164faecbe83335664736f6c63430008100033", + "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1931:25;;;;;;;;;1061:2431;1931:25;;;1061:2431;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::i;:::-;;;;;;;;;2078:10;;1061:2431;2090:15;1061:2431;;;;;2090:15;;;;-1:-1:-1;;1061:2431:0;;-1:-1:-1;;;2262:33:0;;-1:-1:-1;;;;;1061:2431:0;;;;;2262:33;;1061:2431;;;;;;;;;;;;;;2262:33;1061:2431;-1:-1:-1;;;;;1061:2431:0;;2262:33;;;;;;;1061:2431;2262:33;;;2073:129;1061:2431;;;:::i;:::-;;8386:12:1;;;:::i;:::-;;;1061:2431:0;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8435:24:1;;1061:2431:0;;;;;;;;;;;8435:24:1;;;;;;;1061:2431:0;8435:24:1;;;2073:129:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8495:30:1;;1061:2431:0;;;;;;;;;;;8495:30:1;;;;;;;1061:2431:0;8495:30:1;;;2073:129:0;-1:-1:-1;8386:12:1;8622:18;;1061:2431:0;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8669:70:1;;1061:2431:0;;;;;;;;;;;;;;;;;8669:70:1;;;;;;1061:2431:0;8669:70:1;;;;2073:129:0;1061:2431;;;;;;;;;8819:18:1;8386:12;8819:18;;:25;1061:2431:0;8819:25:1;;;8862:27;1061:2431:0;8862:27:1;;1061:2431:0;;8908:28:1;;1061:2431:0;8950:23:1;8669:70;8950:23;;;1061:2431:0;;;;;;;8992:28:1;;1061:2431:0;;9035:24:1;8386:12;9035:24;;1061:2431:0;9083:33:1;1061:2431:0;9083:33:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;9139:54:1;;1061:2431:0;;;;;;;;;9139:54:1;;1061:2431:0;9139:54:1;;;;;;;1061:2431:0;9139:54:1;;;2073:129:0;1061:2431;;;;;;;;:::i;:::-;;;;8669:70:1;1061:2431:0;;;8577:623:1;;1061:2431:0;;;;8577:623:1;;1061:2431:0;;;8577:623:1;;1061:2431:0;8669:70:1;1061:2431:0;8577:623:1;;1061:2431:0;;8577:623:1;;;1061:2431:0;8386:12:1;1061:2431:0;8577:623:1;;1061:2431:0;;;8577:623:1;;1061:2431:0;8577:623:1;1061:2431:0;8577:623:1;;1061:2431:0;8577:623:1;1061:2431:0;8577:623:1;;1061:2431:0;8577:623:1;1061:2431:0;8577:623:1;;1061:2431:0;;8386:12:1;9302:25;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1061:2431:0;9402:3:1;1061:2431:0;8386:12:1;9302:25;;9368;1061:2431:0;;;;;9364:36:1;;;;1061:2431:0;9427:71:1;9402:3;1061:2431:0;9460:28:1;1061:2431:0;;;;;;9460:28:1;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;1061:2431:0;;;9415:83:1;;:::i;:::-;;;1061:2431:0;;;9415:83:1;;:::i;:::-;;9402:3;:::i;:::-;9351:11;;9364:36;;;;;;;8386:12;9610:26;;1061:2431:0;9610:26:1;;1061:2431:0;9671:32:1;1061:2431:0;9671:32:1;;1061:2431:0;9738:32:1;1061:2431:0;;8669:70:1;1061:2431:0;9738:32:1;;1061:2431:0;9791:18:1;;1061:2431:0;;;;;;;;;;;9836:32:1;;1061:2431:0;;;;;;;;;9836:32:1;;1061:2431:0;;;;;;;;;;;;9836:32:1;;;;;;;1061:2431:0;9836:32:1;;;9346:159;9921:16;8386:12;9921:16;;8386:12;9921:16;;1061:2431:0;;;;;;;;;;9973:15:1;10011:20;1061:2431:0;10011:20:1;;1061:2431:0;10063:29:1;8577:623;10063:29;;1061:2431:0;10115:20:1;8577:623;10115:20;;1061:2431:0;10167:29:1;8577:623;10167:29;;1061:2431:0;10226:27:1;1061:2431:0;10226:27:1;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;9524:738:1;;1061:2431:0;;9524:738:1;1061:2431:0;;9524:738:1;;1061:2431:0;8669:70:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;8386:12:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;9524:738:1;;;1061:2431:0;9524:738:1;;;1061:2431:0;;;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;2411:38;1061:2431;2411:38;;;;;;;1061:2431;2411:38;;;9346:159:1;1061:2431:0;;;;;;;:::i;:::-;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;;;;;;;;;;;;;;;;;8669:70:1;1061:2431:0;;;;;;;;;;8386:12:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8669:70:1;1061:2431:0;;;;;;;;;;;8577:623:1;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;2411:38;;;;1061:2431;2411:38;;1061:2431;2411:38;;;;;;1061:2431;2411:38;;;:::i;:::-;;;1061:2431;;;;;2411:38;;;;1061:2431;;;;2411:38;;;-1:-1:-1;2411:38:0;;;1061:2431;;;;;;;;;9836:32:1;;;1061:2431:0;9836:32:1;;1061:2431:0;9836:32:1;;;;;;1061:2431:0;9836:32:1;;;:::i;:::-;;;1061:2431:0;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;1061:2431:0;;;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;1061:2431:0;9139:54:1;;1061:2431:0;9139:54:1;;;;;;1061:2431:0;9139:54:1;;;:::i;:::-;;;1061:2431:0;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;1061:2431:0;;;;;;;;;;;;8669:70:1;1061:2431:0;8669:70:1;;1061:2431:0;8669:70:1;;;;;;1061:2431:0;8669:70:1;;;:::i;:::-;;;1061:2431:0;;;;;8669:70:1;;;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;1061:2431:0;8495:30:1;;1061:2431:0;8495:30:1;;;;;;1061:2431:0;8495:30:1;;;:::i;:::-;;;1061:2431:0;;;;;8495:30:1;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;1061:2431:0;8435:24:1;;1061:2431:0;8435:24:1;;;;;;1061:2431:0;8435:24:1;;;:::i;:::-;;;1061:2431:0;;;;;8435:24:1;;;;;;-1:-1:-1;8435:24:1;;2262:33:0;;;1061:2431;2262:33;;1061:2431;2262:33;;;;;;1061:2431;2262:33;;;:::i;:::-;;;1061:2431;;;;;2262:33;;;;;;-1:-1:-1;2262:33:0;;2107:3;1061:2431;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;2132:63;;1061:2431;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2132:63;;;;:::i;:::-;2120:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2431:0;;;;;;2078:10;;1061:2431;;;;;:::i;:::-;;;;;;;;;;1931:25;;;;1061:2431;1931:25;;1061:2431;1931:25;;;;;;1061:2431;1931:25;;;:::i;:::-;;;1061:2431;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;1931:25;;;;;;;-1:-1:-1;1931:25:0;;1061:2431;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8386:12:1;;;:::i;:::-;1061:2431:0;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;8435:24:1;;1061:2431:0;;;;;;;8435:24:1;;1061:2431:0;;;;;;;;8435:24:1;;;;;;;1061:2431:0;8435:24:1;;;1061:2431:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;8495:30:1;;1061:2431:0;;;;8435:24:1;;1061:2431:0;;;;;;;;8495:30:1;;;;;;;1061:2431:0;8495:30:1;;;1061:2431:0;-1:-1:-1;8622:18:1;;1061:2431:0;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;8669:70:1;;1061:2431:0;;;;;;;;;;;;;8435:24:1;1061:2431:0;;;;8669:70:1;;;;;;;1061:2431:0;8669:70:1;;;1061:2431:0;;;;;;;;;8819:18:1;;;;:25;1061:2431:0;8819:25:1;;;8862:27;1061:2431:0;8862:27:1;;1061:2431:0;;8908:28:1;;1061:2431:0;8950:23:1;;;;;1061:2431:0;;;;;;;8992:28:1;;1061:2431:0;;9035:24:1;;;;1061:2431:0;9083:33:1;8435:24;9083:33;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;9139:54:1;;1061:2431:0;;;;;;;9139:54:1;;1061:2431:0;9139:54:1;;;;;;;1061:2431:0;9139:54:1;;;1061:2431:0;;8435:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;8577:623:1;1061:2431:0;;;8577:623:1;;1061:2431:0;;8577:623:1;;1061:2431:0;8950:23:1;8577:623;;1061:2431:0;;8577:623:1;;1061:2431:0;9035:24:1;8577:623;;1061:2431:0;;8577:623:1;;1061:2431:0;8577:623:1;;;1061:2431:0;8577:623:1;;;1061:2431:0;8577:623:1;;;1061:2431:0;;9302:25:1;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1061:2431:0;9402:3:1;1061:2431:0;9302:25:1;;9368;1061:2431:0;;;;;9364:36:1;;;;1061:2431:0;9427:71:1;1061:2431:0;9460:28:1;9402:3;1061:2431:0;;;;9460:28:1;;:::i;9427:71::-;9415:83;1061:2431:0;;;9415:83:1;;:::i;:::-;;;1061:2431:0;;;9415:83:1;;:::i;9402:3::-;9351:11;;9364:36;9836:32;9364:36;;;;;;8435:24;9610:26;;1061:2431:0;9671:32:1;1061:2431:0;9671:32:1;;1061:2431:0;9738:32:1;8435:24;1061:2431:0;9738:32:1;;1061:2431:0;9791:18:1;8950:23;9791:18;;1061:2431:0;;;;;;;;;;;;9836:32:1;;;1061:2431:0;9836:32:1;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;9836:32:1;;;-1:-1:-1;;;;;1061:2431:0;9836:32:1;;;;;;;1061:2431:0;9836:32:1;;;9346:159;1061:2431:0;9921:16:1;;9035:24;9921:16;;1061:2431:0;;;;;;;;9973:15:1;10011:20;1061:2431:0;10011:20:1;;1061:2431:0;10063:29:1;8577:623;10063:29;;1061:2431:0;10115:20:1;8577:623;10115:20;;1061:2431:0;10167:29:1;1061:2431:0;8577:623:1;10167:29;;1061:2431:0;10226:27:1;;1061:2431:0;;8435:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;9524:738:1;1061:2431:0;;9524:738:1;;1061:2431:0;;9524:738:1;;1061:2431:0;8950:23:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;9035:24:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;9524:738:1;;;1061:2431:0;9524:738:1;;;1061:2431:0;;;;;;8435:24:1;1061:2431:0;;8435:24:1;1061:2431:0;;;;:::i;9836:32:1:-;;;8435:24;9836:32;;8435:24;9836:32;;;;;;8435:24;9836:32;;;:::i;:::-;;;1061:2431:0;;;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;1061:2431:0;8435:24:1;1061:2431:0;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;8435:24;9139:54;;8435:24;9139:54;;;;;;8435:24;9139:54;;;:::i;:::-;;;1061:2431:0;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;8669:70;;;8435:24;8669:70;;8435:24;8669:70;;;;;;8435:24;8669:70;;;:::i;:::-;;;1061:2431:0;;;;;8669:70:1;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;;8435:24;8495:30;;8435:24;8495:30;;;;;;8435:24;8495:30;;;:::i;:::-;;;1061:2431:0;;;;;8495:30:1;;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;8435:24:1;;;;;;;-1:-1:-1;8435:24:1;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2467:1023;;;;;;1061:2431;;:::i;:::-;-1:-1:-1;1061:2431:0;;2768:29;;;;1061:2431;2833:31;;;;1061:2431;;;-1:-1:-1;;;2930:38:0;;-1:-1:-1;;;;;1061:2431:0;;;2930:38;;;;1061:2431;;;;;2930:38;;1061:2431;;;;;;;;;;;;2768:29;1061:2431;;;;;;;2930:38;;;;;;;-1:-1:-1;2930:38:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;;-1:-1:-1;;;3163:34:0;;-1:-1:-1;;;;;1061:2431:0;;;3163:34;;;1061:2431;;;;;2768:29;1061:2431;;;;;;;;;;2768:29;;1061:2431;;;;;3163:34;;;;;;;;;;-1:-1:-1;3163:34:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3216:25:0;;-1:-1:-1;;;;;1061:2431:0;;;3216:25;;;1061:2431;;;;2768:29;1061:2431;;;3216:25;;;;;;;;-1:-1:-1;3216:25:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3270:34:0;;;;;1061:2431;;;;2768:29;1061:2431;;;3270:34;;;;;;;;-1:-1:-1;3270:34:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;3335:34;;;;;1061:2431;2768:29;3335:34;1061:2431;3335:34;;;;;;;;;;;-1:-1:-1;3335:34:0;;;2467:1023;-1:-1:-1;1061:2431:0;2833:31;1061:2431;-1:-1:-1;;;3434:42:0;;;;;1061:2431;;;;;;2768:29;;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;3434:42;;;;;;;-1:-1:-1;3434:42:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;:::i;:::-;;;2768:29;2988:497;;1061:2431;2833:31;2988:497;;1061:2431;2988:497;;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;2467:1023;:::o;3434:42::-;;;2768:29;3434:42;;2768:29;3434:42;;;;;;2768:29;3434:42;;;:::i;:::-;;;1061:2431;;;;;;3434:42;;;;1061:2431;;;3434:42;;;-1:-1:-1;3434:42:0;;3335:34;;;;2768:29;3335:34;;2768:29;3335:34;;;;;;2768:29;3335:34;;;:::i;:::-;;;1061:2431;;;;-1:-1:-1;1061:2431:0;;;;;3335:34;;;;;-1:-1:-1;3335:34:0;;3270;;;2768:29;3270:34;;2768:29;3270:34;;;;;;2768:29;3270:34;;;:::i;:::-;;;1061:2431;;;;;;3270:34;;;;;;;-1:-1:-1;3270:34:0;;3216:25;;;2768:29;3216:25;;2768:29;3216:25;;;;;;2768:29;3216:25;;;:::i;:::-;;;1061:2431;;;;;;3216:25;;;;;;;-1:-1:-1;3216:25:0;;3163:34;;;2768:29;3163:34;;2768:29;3163:34;;;;;;2768:29;3163:34;;;:::i;:::-;;;1061:2431;;;;;;3163:34;;;;;;;-1:-1:-1;3163:34:0;;2930:38;2768:29;2930:38;;;;;2768:29;2930:38;;;;;;2768:29;2930:38;;;:::i;:::-;;;1061:2431;;;;2833:31;1061:2431;;2768:29;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;-1:-1:-1;2833:31:0;1061:2431;;;;;2768:29;2930:38;;1061:2431;-1:-1:-1;;;1061:2431:0;;;;;;;;;;;;2930:38;;;-1:-1:-1;2930:38:0;;1061:2431;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2431:0;;;;4218:18:1;;;;;;;;;;;:::o;6180:2007::-;;;-1:-1:-1;1061:2431:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;6271:17:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6271:17:1;;;;;;-1:-1:-1;1061:2431:0;6271:17:1;;;6180:2007;1061:2431:0;;;;;;;6314:17:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;;6180:2007;1061:2431:0;;;;;;;6366:26:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;;6180:2007;1061:2431:0;;;;;;;6415:21:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6468:26:1;;6180:2007;6271:15;1061:2431:0;;;;6271:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6468:26:1;;;;;;;-1:-1:-1;6468:26:1;;;6180:2007;1061:2431:0;;;;;;;6531:31:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;;6180:2007;1061:2431:0;;;;;;;6599:31:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;;6180:2007;1061:2431:0;;;;;;;6661:25:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;;6180:2007;1061:2431:0;;;;;;;6711:22:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;;6180:2007;1061:2431:0;;;;;;;6758:19:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;;6180:2007;1061:2431:0;;;;;;;6802:19:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6866:19:1;;6180:2007;6271:15;;1061:2431:0;;;;;6271:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6918:32:1;;6271:17;6918:32;;1061:2431:0;;;6180:2007:1;6271:15;1061:2431:0;;;;;;;;-1:-1:-1;;;;;1061:2431:0;6918:32:1;;;;;;-1:-1:-1;1061:2431:0;6918:32:1;;;6180:2007;1061:2431:0;;;;;;;6983:32:1;;6271:17;6983:32;;1061:2431:0;;;;;;;;;;6180:2007:1;6271:15;1061:2431:0;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7105:25:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6271:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7105:25:1;;;;;;;-1:-1:-1;7105:25:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7148:27:1;;1061:2431:0;;6271:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7148:27:1;;;;;;-1:-1:-1;1061:2431:0;7148:27:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7217:23:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6271:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7217:23:1;;;;;;;-1:-1:-1;7217:23:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7292:34:1;;-1:-1:-1;;;;;1061:2431:0;;;6271:17:1;7292:34;;1061:2431:0;6180:2007:1;6271:15;1061:2431:0;;;;;;;;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;;6180:2007;-1:-1:-1;1061:2431:0;;7350:42:1;;;;-1:-1:-1;;;7350:42:1;;;6180:2007;6271:15;7350:42;;-1:-1:-1;;;;;1061:2431:0;;;6271:17:1;7350:42;;;1061:2431:0;7350:42:1;;;;;1061:2431:0;;;;7350:42:1;;1061:2431:0;;7350:42:1;;;;;;;;;;;-1:-1:-1;7350:42:1;;;;6180:2007;1061:2431:0;;;;;;;;:::i;:::-;;;;;;;;;;;;7051:348:1;;1061:2431:0;;;;;7051:348:1;;1061:2431:0;;;7051:348:1;;1061:2431:0;;;7051:348:1;;1061:2431:0;;;;;;;;;7051:348:1;;1061:2431:0;;;7051:348:1;;1061:2431:0;;7051:348:1;;;1061:2431:0;;;;6254:34:1;1061:2431:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6254:34:1;1061:2431:0;;;;;;;;6254:34:1;1061:2431:0;;:::i;:::-;;-1:-1:-1;1061:2431:0;;;;;;7483:11:1;;-1:-1:-1;7511:3:1;1061:2431:0;;6254:34:1;1061:2431:0;;;;7496:13:1;;;;7536:24;;7511:3;7536:24;6180:2007;7536:24;;:::i;:::-;7524:36;1061:2431:0;;;7524:36:1;;:::i;:::-;;;1061:2431:0;;;7524:36:1;;:::i;7511:3::-;7483:11;;7496:13;;;;;;;;;;;7901:38;-1:-1:-1;;;;;7810:38:1;6891:59;1061:2431:0;6891:59:1;1061:2431:0;7810:38:1;:::i;:::-;1061:2431:0;;7901:38:1;:::i;:::-;1061:2431:0;;;8005:27:1;1061:2431:0;8005:27:1;;4218:18;1061:2431:0;8098:27:1;;4218:18;1061:2431:0;;;;;;;;:::i;:::-;;;;;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;6180:2007:1;7586:596;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;6180:2007:1;:::o;1061:2431:0:-;;;;;;;;:::i;:::-;;;;;;;;7350:42:1;;;;1061:2431:0;7350:42:1;;1061:2431:0;7350:42:1;;;;;;;1061:2431:0;7350:42:1;;;:::i;:::-;1061:2431:0;7350:42:1;;;;1061:2431:0;;;;;7350:42:1;;;;;;;-1:-1:-1;7350:42:1;;7292:34;;;;1061:2431:0;7292:34:1;;1061:2431:0;7292:34:1;;;;;;1061:2431:0;7292:34:1;;;:::i;:::-;;;1061:2431:0;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7148:27;1061:2431:0;7148:27:1;;1061:2431:0;7148:27:1;;;;;;1061:2431:0;7148:27:1;;;:::i;:::-;;;1061:2431:0;;;;;;7148:27:1;;;;;;;-1:-1:-1;7148:27:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;;;;:::i;:::-;;;;;6983:32;;;;1061:2431:0;6983:32:1;;1061:2431:0;6983:32:1;;;;;;1061:2431:0;6983:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;6918;1061:2431:0;6918:32:1;;1061:2431:0;6918:32:1;;;;;;1061:2431:0;6918:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6918:32:1;;;;;;;-1:-1:-1;6918:32:1;;6866:19;;;;6180:2007;6866:19;;6180:2007;6866:19;;;;;;6180:2007;6866:19;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;6802;;;;1061:2431:0;6802:19:1;;1061:2431:0;6802:19:1;;;;;;1061:2431:0;6802:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;6758;;;;1061:2431:0;6758:19:1;;1061:2431:0;6758:19:1;;;;;;1061:2431:0;6758:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;6711:22;;;;1061:2431:0;6711:22:1;;1061:2431:0;6711:22:1;;;;;;1061:2431:0;6711:22:1;;;:::i;:::-;;;1061:2431:0;;;;;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;6661:25;;;;1061:2431:0;6661:25:1;;1061:2431:0;6661:25:1;;;;;;1061:2431:0;6661:25:1;;;:::i;:::-;;;1061:2431:0;;;;;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;6599:31;;;;1061:2431:0;6599:31:1;;1061:2431:0;6599:31:1;;;;;;1061:2431:0;6599:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;6531;;;;1061:2431:0;6531:31:1;;1061:2431:0;6531:31:1;;;;;;1061:2431:0;6531:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;6468:26;;;1061:2431:0;6468:26:1;;1061:2431:0;6468:26:1;;;;;;1061:2431:0;6468:26:1;;;:::i;:::-;;;1061:2431:0;;;;;6468:26:1;;;;;;-1:-1:-1;6468:26:1;;6415:21;;;;1061:2431:0;6415:21:1;;1061:2431:0;6415:21:1;;;;;;1061:2431:0;6415:21:1;;;:::i;:::-;;;1061:2431:0;;;;;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;6366:26;;;;1061:2431:0;6366:26:1;;1061:2431:0;6366:26:1;;;;;;1061:2431:0;6366:26:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;6314:17;;;;1061:2431:0;6314:17:1;;1061:2431:0;6314:17:1;;;;;;1061:2431:0;6314:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;6271;1061:2431:0;6271:17:1;;1061:2431:0;6271:17:1;;;;;;1061:2431:0;6271:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6271:17:1;;;;;;;-1:-1:-1;6271:17:1;;1061:2431:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;10271:782:1:-;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10407:25:1;;1061:2431:0;;;;10407:25:1;;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;;;;;10407:25:1;;1061:2431:0;;;;10407:25:1;;;;;;;-1:-1:-1;10407:25:1;;;10271:782;1061:2431:0;;10495:15:1;;;;1061:2431:0;;;;;;-1:-1:-1;;;;;10538:32:1;10407:25;10538:32;;;;1061:2431:0;;;;;;;;;;;;;;10590:33:1;;;;;;;;;-1:-1:-1;10590:33:1;;;10271:782;10660:35;10407:25;10660:35;;1061:2431:0;10660:35:1;;1061:2431:0;;10724:27:1;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;10767:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10767:29:1;;;10271:782;10828:19;;;;1061:2431:0;;;;;;;;;;;;;;;10813:35:1;;10407:25;10813:35;;1061:2431:0;10813:35:1;;;;;;;;;;-1:-1:-1;10813:35:1;;;10271:782;1061:2431:0;;;10909:19:1;1061:2431:0;10909:19:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;10946:31:1;;;;10407:25;10946:31;-1:-1:-1;10946:31:1;;;;;;;-1:-1:-1;10946:31:1;;;10271:782;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;11000:39:1;;1061:2431:0;;10407:25:1;11000:39;;1061:2431:0;;;;;;;11000:39:1;;1061:2431:0;11000:39:1;;;;;;;-1:-1:-1;11000:39:1;;;10271:782;1061:2431:0;;;;;;;;:::i;:::-;;10452:596:1;;1061:2431:0;10452:596:1;;1061:2431:0;10452:596:1;;;1061:2431:0;10538:32:1;10452:596;;1061:2431:0;;10452:596:1;;1061:2431:0;10724:27:1;10452:596;;1061:2431:0;;10452:596:1;;1061:2431:0;10452:596:1;;1061:2431:0;10452:596:1;;;1061:2431:0;10452:596:1;;;1061:2431:0;10271:782:1;:::o;11000:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;11000:39:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10946:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10813:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;10813:35:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10767:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10590:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;10407:25:1;10590:33;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10407:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10407:25:1;;;;;;;;;11057:925;;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11357:63:1;;-1:-1:-1;;;;;1061:2431:0;;;11357:63:1;;;1061:2431:0;;;;;;;;;;;;;;;11357:63:1;1061:2431:0;;;;11357:63:1;;;;;;;-1:-1:-1;11357:63:1;;;11057:925;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11439:57:1;;-1:-1:-1;;;;;1061:2431:0;;;11357:63:1;11439:57;;1061:2431:0;;;;;;;;;11357:63:1;;1061:2431:0;;;;;;11439:57:1;;;;;;;-1:-1:-1;11439:57:1;;;11057:925;-1:-1:-1;11357:63:1;11524:22;;1061:2431:0;;11566:14:1;;;1061:2431:0;11617:31:1;;;1061:2431:0;;11677:23:1;;1061:2431:0;11716:10:1;;;;11743:11;;;1061:2431:0;;11775:15:1;;1061:2431:0;11811:15:1;;;1061:2431:0;11844:12:1;;;;11879:17;;;1061:2431:0;;;;;-1:-1:-1;;;11921:47:1;;-1:-1:-1;;;;;1061:2431:0;;;11357:63:1;11921:47;;1061:2431:0;;11844:12:1;;1061:2431:0;;;;;;;;;;11716:10:1;;1061:2431:0;;;;;11921:47:1;;1061:2431:0;11921:47:1;11357:63;11921:47;;;;;;;-1:-1:-1;11921:47:1;;;11057:925;1061:2431:0;;;;;;;;:::i;:::-;;;11357:63:1;11256:721;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;11256:721:1;;1061:2431:0;11716:10:1;11256:721;;1061:2431:0;11617:31:1;11256:721;;1061:2431:0;;11256:721:1;;1061:2431:0;11743:11:1;11256:721;;1061:2431:0;;11256:721:1;;1061:2431:0;11811:15:1;11256:721;;1061:2431:0;11844:12:1;11256:721;;1061:2431:0;11879:17:1;11256:721;;1061:2431:0;11256:721:1;;;1061:2431:0;11256:721:1;;;1061:2431:0;11256:721:1;;;1061:2431:0;11057:925:1;:::o;11921:47::-;;;11357:63;11921:47;;11357:63;11921:47;;;;;;11357:63;11921:47;;;:::i;:::-;;;1061:2431:0;;;;;;11921:47:1;;;;;;;-1:-1:-1;11921:47:1;;11439:57;;11357:63;11439:57;;11357:63;11439:57;;;;;;11357:63;11439:57;;;:::i;:::-;;;1061:2431:0;;;;;;;;:::i;:::-;11439:57:1;;;;;;-1:-1:-1;11439:57:1;;11357:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;11357:63:1;;;;;;-1:-1:-1;11357:63:1;", "linkReferences": {} }, "methodIdentifiers": { @@ -1097,7 +1107,7 @@ "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b\",\"dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1742,6 +1752,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -2154,6 +2169,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -2220,10 +2240,10 @@ "license": "UNLICENSED" }, "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "keccak256": "0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980", "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + "bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b", + "dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ" ], "license": "UNLICENSED" } @@ -2247,7 +2267,7 @@ 598 ], "CometQuery": [ - 1268 + 1272 ], "DebtToken": [ 27 @@ -2284,7 +2304,7 @@ "file": "./CometQuery.sol", "nameLocation": "-1:-1:-1", "scope": 288, - "sourceUnit": 1269, + "sourceUnit": 1273, "symbolAliases": [], "unitAlias": "" }, @@ -3304,7 +3324,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" }, "typeName": { @@ -3317,13 +3337,13 @@ "1434:26:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 789, + "referencedDeclaration": 791, "src": "1434:26:0" }, - "referencedDeclaration": 789, + "referencedDeclaration": 791, "src": "1434:26:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" } }, @@ -4324,10 +4344,10 @@ "name": "queryWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, + "referencedDeclaration": 1142, "src": "2341:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$791_memory_ptr_$", "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" } }, @@ -4343,7 +4363,7 @@ "src": "2341:44:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" } }, @@ -4424,7 +4444,7 @@ "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" }, { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" }, { @@ -6093,7 +6113,7 @@ "1085:10:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, + "referencedDeclaration": 1272, "src": "1085:10:0" }, "id": 56, @@ -6107,7 +6127,7 @@ "fullyImplemented": true, "linearizedBaseContracts": [ 287, - 1268 + 1272 ], "name": "AaveV2Query", "nameLocation": "1070:11:0", diff --git a/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json b/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json index 8c33a82..5336abc 100644 --- a/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json +++ b/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json @@ -610,6 +610,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -646,13 +651,13 @@ } ], "bytecode": { - "object": "0x6080806040523461001657611f41908161001c8239f35b600080fdfe610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035c578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a42565b610e95565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610a91565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610a91565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610c90565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a42565b6024359060ff821682036101d05761021d9161020991611989565b604051918291602083526020830190610c90565b0390f35b346101d0576003196060368201126101d05761023b610a42565b602435906001600160401b03928383116101d057610160809184360301126101d057604051908101818110858211176103465760405261027d83600401610c1a565b8152602483013560208201526044830135604082015260648301358481116101d0576102af9060043691860101610c49565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102de60e48401610c1a565b60e08201526101048301356101008201526101248301359384116101d0576101446103329361031661021d9660043691840101610c49565b610120840152013561014082015261032c610a58565b91611cef565b604051918291602083526020830190610ab6565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610375610a42565b6024356001600160a01b03811690036101d057610390610a58565b61039b610160610b6d565b6040516103a781610b89565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015261047082610e95565b6040516370a0823160e01b8152602480356001600160a01b039081166004840152929391926020918491829088165afa91821561093b57600092610a0e575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401526020918391829089165afa90811561093b576000916109dc575b50835151604051636eb1769f60e11b81526001600160a01b03602480358216600484015288821690830152909116919060208180604481010381865afa90811561093b576000916109aa575b5084828103116109945760249486519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519e8f80926370a0823160e01b825260018060a01b0383351660048301525afa9a8b1561093b5760009b61095e575b6040519d506105c28e610b89565b8d5260208d01520360408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015260a0830151519161060a83610dd6565b926106186040519485610bf9565b808452610627601f1991610dd6565b0160005b81811061094757505060005b60a0850151805160ff8316101561068e5790610668610689926106616024359160ff851690610e52565b5189611cef565b61067560ff831687610e52565b5261068360ff821686610e52565b50610e41565b610637565b5050602080850151604080870151606088015160808901519251636eb1769f60e11b8152602480356001600160a01b0390811660048401529889169082015299959897939691959094929392918a916044918391165afa801561093b57600090610907575b610729985060c08701519260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e610b6d565b8d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040516020815281516101a0602083015260018060a01b038151166101c083015260208101516101e083015260408101516102008301526060810151610220830152608081015161024083015260a081015161026083015261014061081f6107e660c0840151610160610280870152610320860190610a91565b60e08401516001600160a01b03166102a08601526101008401516102c08601526101208401518582036101bf19016102e0870152610a91565b910151610300830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b8383106108da578680876101808b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101518285015201516101a08301520390f35b90919293946020806108f8600193601f198682030187528951610ab6565b97019301930191939290610887565b506020883d602011610933575b8161092160209383610bf9565b810103126101d05761072997516106f3565b3d9150610914565b6040513d6000823e3d90fd5b60209061095261190b565b8282880101520161062b565b9a5060208d3d60201161098c575b8161097960209383610bf9565b810103126101d0576105c29c519a6105b4565b3d915061096c565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109d4575b816109c560209383610bf9565b810103126101d0575187610537565b3d91506109b8565b90506020813d602011610a06575b816109f760209383610bf9565b810103126101d05751856104eb565b3d91506109ea565b9091506020813d602011610a3a575b81610a2a60209383610bf9565b810103126101d0575190846104af565b3d9150610a1d565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610a815750506000910152565b8181015183820152602001610a71565b90602091610aaa81518092818552858086019101610a6e565b601f01601f1916010190565b90610b5460018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b0860a08501516101c08060a0870152850190610a91565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610a91565b9161018080820151908301526101a08091015191015290565b6101a081019081106001600160401b0382111761034657604052565b61016081019081106001600160401b0382111761034657604052565b61018081019081106001600160401b0382111761034657604052565b61010081019081106001600160401b0382111761034657604052565b6101c081019081106001600160401b0382111761034657604052565b90601f801991011681019081106001600160401b0382111761034657604052565b35906001600160a01b03821682036101d057565b6001600160401b03811161034657601f01601f191660200190565b81601f820112156101d057803590610c6082610c2e565b92610c6e6040519485610bf9565b828452602083830101116101d057816000926020809301838601378301015290565b90610d1760018060a01b038084511683526020840151602084015260408401516040840152610cce6060850151610160806060870152850190610a91565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610a91565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b51906001600160401b03821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d0578051906001600160401b0382116101d0570181601f820112156101d0578051610da781610c2e565b92610db56040519485610bf9565b818452602082840101116101d057610dd39160208085019101610a6e565b90565b6001600160401b0381116103465760051b60200190565b60405190610dfa82610b89565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109945760010190565b8051821015610e665760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610994570290565b6080526000610160604051610ea981610ba5565b604051610eb581610bc1565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b03608051165afa801561093b57600060c0526118d0575b506040519063c55dae6360e01b825260208260048160018060a01b03608051165afa91821561093b57600092611894575b506040519063e7dad6bd60e01b825260208260048160018060a01b03608051165afa91821561093b57600092611858575b506040519163300e6beb60e01b835260208360048160018060a01b03608051165afa92831561093b57600093611824575b506040516355d3f8af60e11b8152608051602090829060049082906001600160a01b03165afa90811561093b576000916117f2575b506040519363189bb2f160e01b855260208560048160018060a01b03608051165afa94851561093b576000956117be575b5060405190634f54cd2d60e11b825260208260048160018060a01b03608051165afa91821561093b5760009261178a575b50604051936349b270c560e11b855260208560048160018060a01b03608051165afa94851561093b57600095611756575b5060405197637eb7113160e01b895260208960048160018060a01b03608051165afa98891561093b57600099611722575b50604051926318160ddd60e01b845260208460048160018060a01b03608051165afa93841561093b576000946116ee575b506040519163020a17bd60e61b835260208360048160018060a01b03608051165afa92831561093b576000936116ba575b506040519363b9f0baf760e01b85526101008560048160018060a01b03608051165afa94851561093b576000956115ee575b50604051634fd41dad60e11b8152600481018d9052608051602090829060249082906001600160a01b03165afa801561093b57600060a0526115b3575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b03608051165afa9b8c1561093b5760009c611577575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561093b5760009461155a575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561093b57600061014052611526575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561093b57600092611501575b506040516341976e0960e01b81526001600160a01b03848116600483015260805191959160209187916024918391165afa94851561093b576000956114cd575b506040516101208181526370a0823160e01b90915260805181516001600160a01b039182166004909101529051602091602490829085165afa80610100521561093b5760009061010051611495575b61131a6040518060e052610bc1565b60018060a01b031660e05152602060e051015261014051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e08051015261137060ff60c05116610dd6565b9761137e604051998a610bf9565b60ff60c051168952601f1961139760ff60c05116610dd6565b0160005b81811061147d57505060005b60ff60c0511660ff821610156113e757806113c76113e292608051611989565b6113d460ff83168d610e52565b5261068360ff82168c610e52565b6113a7565b509193959790929496986114106001600160401b036114098160a05116610e7c565b9216610e7c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61143a8c610ba5565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b6020809361148b610ded565b920101520161139b565b905060203d6020116114c6575b6114af8161012051610bf9565b6020610120518092810103126101d057519061130b565b503d6114a2565b9094506020813d6020116114f9575b816114e960209383610bf9565b810103126101d0575193386112bc565b3d91506114dc565b61151f9192503d806000833e6115178183610bf9565b810190610d75565b903861127c565b6020813d602011611552575b8161153f60209383610bf9565b810103126101d05751610140523861124c565b3d9150611532565b6115709194503d806000833e6115178183610bf9565b923861121b565b909b506020813d6020116115ab575b8161159360209383610bf9565b810103126101d0576115a490610d47565b9a386111eb565b3d9150611586565b6020813d6020116115e6575b816115cc60209383610bf9565b810103126101d0576115dd90610d47565b60a052386111b5565b3d91506115bf565b909450610100813d610100116116b2575b8161160d6101009383610bf9565b810103126101d0576040519061162282610bc1565b61162b81610d47565b825261163960208201610d47565b602083015261164a60408201610d47565b604083015261165b60608201610d47565b606083015261166c60808201610d5b565b608083015261167d60a08201610d5b565b60a083015260c081015164ffffffffff811681036101d05760c08301526116a69060e001610d25565b60e08201529338611178565b3d91506115ff565b9092506020813d6020116116e6575b816116d660209383610bf9565b810103126101d057519138611146565b3d91506116c9565b9093506020813d60201161171a575b8161170a60209383610bf9565b810103126101d057519238611115565b3d91506116fd565b9098506020813d60201161174e575b8161173e60209383610bf9565b810103126101d0575197386110e4565b3d9150611731565b9094506020813d602011611782575b8161177260209383610bf9565b810103126101d0575193386110b3565b3d9150611765565b9091506020813d6020116117b6575b816117a660209383610bf9565b810103126101d057519038611082565b3d9150611799565b9094506020813d6020116117ea575b816117da60209383610bf9565b810103126101d057519338611051565b3d91506117cd565b90506020813d60201161181c575b8161180d60209383610bf9565b810103126101d0575138611020565b3d9150611800565b9092506020813d602011611850575b8161184060209383610bf9565b810103126101d057519138610feb565b3d9150611833565b9091506020813d60201161188c575b8161187460209383610bf9565b810103126101d05761188590610d33565b9038610fba565b3d9150611867565b9091506020813d6020116118c8575b816118b060209383610bf9565b810103126101d0576118c190610d33565b9038610f89565b3d91506118a3565b6020813d602011611903575b816118e960209383610bf9565b810103126101d0576118fa90610d25565b60c05238610f58565b3d91506118dc565b6040519061191882610bdd565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b90611992610ded565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611b9857600093611c36575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c2b57600092611bfb575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b6e57908c97969594939291600095611be0575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bd557908c9160009a611ba3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611b985760009e611b79575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b6e5760009d611b3c575b5082519d8e611b0a81610b89565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b67575b611b538183610bf9565b81010312611b645750519b38611afc565b80fd5b503d611b49565b83513d6000823e3d90fd5b611b90908493929f3d8091833e6115178183610bf9565b9d9091611acc565b85513d6000823e3d90fd5b9150988282813d8311611bce575b611bbb8183610bf9565b81010312611b6457508b90519838611a8d565b503d611bb1565b84513d6000823e3d90fd5b611bf491953d8091833e6115178183610bf9565b9338611a59565b90918582813d8311611c24575b611c128183610bf9565b81010312611b64575051906004611a16565b503d611c08565b50513d6000823e3d90fd5b90928382813d8311611ce8575b611c4d8183610bf9565b81010312611b645750611cdc60e0865192611c6784610bc1565b611c7081610d25565b8452611c7e60208201610d33565b6020850152611c8e888201610d33565b88850152611c9e60608201610d47565b6060850152611caf60808201610d47565b6080850152611cc060a08201610d47565b60a0850152611cd160c08201610d47565b60c085015201611975565b60e082015291386119d3565b503d611c43565b9190611cf961190b565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561093b57600092611ed6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561093b57600091611e9c575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561093b5760009d611e68575b50604051809e611e1482610bdd565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611e94575b81611e8360209383610bf9565b81010312611b645750519b38611e05565b3d9150611e76565b906020823d602011611ece575b81611eb660209383610bf9565b81010312611b645750611ec890611975565b38611d84565b3d9150611ea9565b90916020823d602011611f03575b81611ef160209383610bf9565b81010312611b64575051906020611d40565b3d9150611ee456fea2646970667358221220104d98973b7c67efe7ab17dda9bcccaaa198c3995ad6fc0cb230c592841abcd464736f6c63430008100033", - "sourceMap": "4152:7746:1:-:0;;;;;;;;;;;;;;;;;", + "object": "0x6080806040523461001657611f61908161001c8239f35b600080fdfe610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035d578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a73565b610eb3565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610ac2565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610ac2565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610cab565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a73565b6024359060ff821682036101d05761021d91610209916119a8565b604051918291602083526020830190610cab565b0390f35b346101d0576003196060368201126101d05761023b610a73565b6024359067ffffffffffffffff928383116101d057610160809184360301126101d057604051908101818110858211176103475760405261027e83600401610c34565b8152602483013560208201526044830135604082015260648301358481116101d0576102b09060043691860101610c64565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102df60e48401610c34565b60e08201526101048301356101008201526101248301359384116101d0576101446103339361031761021d9660043691840101610c64565b610120840152013561014082015261032d610a89565b91611d0f565b604051918291602083526020830190610ae7565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610376610a73565b6024356001600160a01b03811690036101d057610391610a89565b61039c610160610b9e565b6040516103a881610bbb565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015260006101a0610160015261047b82610eb3565b6040516370a0823160e01b8152602480356001600160a01b0390811660048401529194916020918691829085165afa93841561096c57600094610a3f575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401529195916020918791829086165afa94851561096c57600095610a0b575b50825151604051636eb1769f60e11b81526001600160a01b036024803582166004840152858216908301529091169590602081806044810103818a5afa90811561096c576000916109d9575b5082828103116109c357845160e08101516040808301516060840151608085015160a086015160c0870151602080890151985196516370a0823160e01b8152602480356001600160a01b039081166004840152919d999c939b9482169a95999698959693959394938e928391165afa9a8b1561096c5760009b61098f575b506040519e8f906105d282610bbb565b8152602001520360408d015260608c015260808b015260a08a015260c089015260e088015261010087015261012086015261014085015260a0820151519361061985610df3565b94604051956106289087610c12565b808652601f199061063890610df3565b0160005b81811061097857505060005b60a0840151805160ff8316101561069f579061067961069a926106726024359160ff851690610e70565b5186611d0f565b61068660ff831689610e70565b5261069460ff821688610e70565b50610e5f565b610648565b5050936020830151936040840151926060850151926020608087015193604460405180958193636eb1769f60e11b835260018060a01b0360243516600484015260018060a01b0316602483015260018060a01b03165afa91821561096c57600092610938575b5060c08601519060018060a01b0360243516319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061074b82610b9e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040516020815281516101c0602083015260018060a01b038151166101e0830152602081015161020083015260408101516102208301526060810151610240830152608081015161026083015260a081015161028083015261014061084461080b60c08401516101606102a0870152610340860190610ac2565b60e08401516001600160a01b03166102c08601526101008401516102e08601526101208401518582036101df1901610300870152610ac2565b910151610320830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061090b578680876101a08b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101518285015201516101c08301520390f35b9091929394602080610929600193601f198682030187528951610ae7565b970193019301919392906108ac565b9091506020813d602011610964575b8161095460209383610c12565b810103126101d057519088610705565b3d9150610947565b6040513d6000823e3d90fd5b60209061098361192a565b82828a0101520161063c565b909a506020813d6020116109bb575b816109ab60209383610c12565b810103126101d05751998f6105c2565b3d915061099e565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610a03575b816109f460209383610c12565b810103126101d0575187610544565b3d91506109e7565b9094506020813d602011610a37575b81610a2760209383610c12565b810103126101d0575193856104f8565b3d9150610a1a565b9093506020813d602011610a6b575b81610a5b60209383610c12565b810103126101d0575192846104b9565b3d9150610a4e565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610ab25750506000910152565b8181015183820152602001610aa2565b90602091610adb81518092818552858086019101610a9f565b601f01601f1916010190565b90610b8560018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b3960a08501516101c08060a0870152850190610ac2565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610ac2565b9161018080820151908301526101a08091015191015290565b6101c0810190811067ffffffffffffffff82111761034757604052565b610160810190811067ffffffffffffffff82111761034757604052565b610180810190811067ffffffffffffffff82111761034757604052565b610100810190811067ffffffffffffffff82111761034757604052565b90601f8019910116810190811067ffffffffffffffff82111761034757604052565b35906001600160a01b03821682036101d057565b67ffffffffffffffff811161034757601f01601f191660200190565b81601f820112156101d057803590610c7b82610c48565b92610c896040519485610c12565b828452602083830101116101d057816000926020809301838601378301015290565b90610d3260018060a01b038084511683526020840151602084015260408401516040840152610ce96060850151610160806060870152850190610ac2565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610ac2565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b519067ffffffffffffffff821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d05780519067ffffffffffffffff82116101d0570181601f820112156101d0578051610dc481610c48565b92610dd26040519485610c12565b818452602082840101116101d057610df09160208085019101610a9f565b90565b67ffffffffffffffff81116103475760051b60200190565b60405190610e1882610bbb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109c35760010190565b8051821015610e845760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109c3570290565b60a0526000610160604051610ec781610bd8565b604051610ed381610bf5565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360a051165afa801561096c57600060e0526118ef575b506040519063c55dae6360e01b825260208260048160018060a01b0360a051165afa91821561096c576000926118b3575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360a051165afa91821561096c57600092611877575b506040519163300e6beb60e01b835260208360048160018060a01b0360a051165afa92831561096c57600093611843575b506040516355d3f8af60e11b815260a051602090829060049082906001600160a01b03165afa90811561096c57600091611811575b506040519363189bb2f160e01b855260208560048160018060a01b0360a051165afa94851561096c576000956117dd575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360a051165afa91821561096c576000926117a9575b50604051936349b270c560e11b855260208560048160018060a01b0360a051165afa94851561096c57600095611775575b5060405197637eb7113160e01b895260208960048160018060a01b0360a051165afa98891561096c57600099611741575b50604051926318160ddd60e01b845260208460048160018060a01b0360a051165afa93841561096c5760009461170d575b506040519163020a17bd60e61b835260208360048160018060a01b0360a051165afa92831561096c576000936116d9575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360a051165afa94851561096c5760009561160d575b50604051634fd41dad60e11b8152600481018d905260a051602090829060249082906001600160a01b03165afa801561096c57600060c0526115d2575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360a051165afa9b8c1561096c5760009c611596575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561096c57600094611579575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561096c57600061010052611545575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561096c57600092611520575b506040516341976e0960e01b81526001600160a01b03848116600483015260a05191959160209187916024918391165afa94851561096c576000956114ec575b506040516101408181526370a0823160e01b90915260a05181516001600160a01b039182166004909101529051602091602490829085165afa80610120521561096c57600090610120516114b4575b61133860405180608052610bf5565b60018060a01b0316608051526020608051015261010051604060805101526060608051015260808051015260018060a01b031660a0608051015260c0608051015260e0608051015261138e60ff60e05116610df3565b9761139c604051998a610c12565b60ff60e051168952601f196113b560ff60e05116610df3565b0160005b81811061149c57505060005b60ff60e0511660ff8216101561140557806113e56114009260a0516119a8565b6113f260ff83168d610e70565b5261069460ff82168c610e70565b6113c5565b5091939597909294969861142f67ffffffffffffffff6114288160c05116610e9a565b9216610e9a565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6114598c610bd8565b6080518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936114aa610e0b565b92010152016113b9565b905060203d6020116114e5575b6114ce8161014051610c12565b6020610140518092810103126101d0575190611329565b503d6114c1565b9094506020813d602011611518575b8161150860209383610c12565b810103126101d0575193386112da565b3d91506114fb565b61153e9192503d806000833e6115368183610c12565b810190610d91565b903861129a565b6020813d602011611571575b8161155e60209383610c12565b810103126101d05751610100523861126a565b3d9150611551565b61158f9194503d806000833e6115368183610c12565b9238611239565b909b506020813d6020116115ca575b816115b260209383610c12565b810103126101d0576115c390610d62565b9a38611209565b3d91506115a5565b6020813d602011611605575b816115eb60209383610c12565b810103126101d0576115fc90610d62565b60c052386111d3565b3d91506115de565b909450610100813d610100116116d1575b8161162c6101009383610c12565b810103126101d0576040519061164182610bf5565b61164a81610d62565b825261165860208201610d62565b602083015261166960408201610d62565b604083015261167a60608201610d62565b606083015261168b60808201610d77565b608083015261169c60a08201610d77565b60a083015260c081015164ffffffffff811681036101d05760c08301526116c59060e001610d40565b60e08201529338611196565b3d915061161e565b9092506020813d602011611705575b816116f560209383610c12565b810103126101d057519138611164565b3d91506116e8565b9093506020813d602011611739575b8161172960209383610c12565b810103126101d057519238611133565b3d915061171c565b9098506020813d60201161176d575b8161175d60209383610c12565b810103126101d057519738611102565b3d9150611750565b9094506020813d6020116117a1575b8161179160209383610c12565b810103126101d0575193386110d1565b3d9150611784565b9091506020813d6020116117d5575b816117c560209383610c12565b810103126101d0575190386110a0565b3d91506117b8565b9094506020813d602011611809575b816117f960209383610c12565b810103126101d05751933861106f565b3d91506117ec565b90506020813d60201161183b575b8161182c60209383610c12565b810103126101d057513861103e565b3d915061181f565b9092506020813d60201161186f575b8161185f60209383610c12565b810103126101d057519138611009565b3d9150611852565b9091506020813d6020116118ab575b8161189360209383610c12565b810103126101d0576118a490610d4e565b9038610fd8565b3d9150611886565b9091506020813d6020116118e7575b816118cf60209383610c12565b810103126101d0576118e090610d4e565b9038610fa7565b3d91506118c2565b6020813d602011611922575b8161190860209383610c12565b810103126101d05761191990610d40565b60e05238610f76565b3d91506118fb565b6040519061193782610b9e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b906119b1610e0b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611bb857600093611c56575b5060209283810193838551169667ffffffffffffffff9060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c4b57600092611c1b575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b8e57908c97969594939291600095611c00575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bf557908c9160009a611bc3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611bb85760009e611b99575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b8e5760009d611b5c575b5082519d8e611b2a81610bbb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b87575b611b738183610c12565b81010312611b845750519b38611b1c565b80fd5b503d611b69565b83513d6000823e3d90fd5b611bb0908493929f3d8091833e6115368183610c12565b9d9091611aec565b85513d6000823e3d90fd5b9150988282813d8311611bee575b611bdb8183610c12565b81010312611b8457508b90519838611aad565b503d611bd1565b84513d6000823e3d90fd5b611c1491953d8091833e6115368183610c12565b9338611a79565b90918582813d8311611c44575b611c328183610c12565b81010312611b84575051906004611a36565b503d611c28565b50513d6000823e3d90fd5b90928382813d8311611d08575b611c6d8183610c12565b81010312611b845750611cfc60e0865192611c8784610bf5565b611c9081610d40565b8452611c9e60208201610d4e565b6020850152611cae888201610d4e565b88850152611cbe60608201610d62565b6060850152611ccf60808201610d62565b6080850152611ce060a08201610d62565b60a0850152611cf160c08201610d62565b60c085015201611994565b60e082015291386119f2565b503d611c63565b9190611d1961192a565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561096c57600092611ef6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561096c57600091611ebc575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561096c5760009d611e88575b50604051809e611e3482610b9e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611eb4575b81611ea360209383610c12565b81010312611b845750519b38611e25565b3d9150611e96565b906020823d602011611eee575b81611ed660209383610c12565b81010312611b845750611ee890611994565b38611da4565b3d9150611ec9565b90916020823d602011611f23575b81611f1160209383610c12565b81010312611b84575051906020611d60565b3d9150611f0456fea26469706673582212202e937a4bca8f6b184d39d37d48af5f8ef4770ad89df318b8478fb02a02515f6964736f6c63430008100033", + "sourceMap": "4152:7832:1:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035c578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a42565b610e95565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610a91565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610a91565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610c90565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a42565b6024359060ff821682036101d05761021d9161020991611989565b604051918291602083526020830190610c90565b0390f35b346101d0576003196060368201126101d05761023b610a42565b602435906001600160401b03928383116101d057610160809184360301126101d057604051908101818110858211176103465760405261027d83600401610c1a565b8152602483013560208201526044830135604082015260648301358481116101d0576102af9060043691860101610c49565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102de60e48401610c1a565b60e08201526101048301356101008201526101248301359384116101d0576101446103329361031661021d9660043691840101610c49565b610120840152013561014082015261032c610a58565b91611cef565b604051918291602083526020830190610ab6565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610375610a42565b6024356001600160a01b03811690036101d057610390610a58565b61039b610160610b6d565b6040516103a781610b89565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015261047082610e95565b6040516370a0823160e01b8152602480356001600160a01b039081166004840152929391926020918491829088165afa91821561093b57600092610a0e575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401526020918391829089165afa90811561093b576000916109dc575b50835151604051636eb1769f60e11b81526001600160a01b03602480358216600484015288821690830152909116919060208180604481010381865afa90811561093b576000916109aa575b5084828103116109945760249486519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519e8f80926370a0823160e01b825260018060a01b0383351660048301525afa9a8b1561093b5760009b61095e575b6040519d506105c28e610b89565b8d5260208d01520360408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015260a0830151519161060a83610dd6565b926106186040519485610bf9565b808452610627601f1991610dd6565b0160005b81811061094757505060005b60a0850151805160ff8316101561068e5790610668610689926106616024359160ff851690610e52565b5189611cef565b61067560ff831687610e52565b5261068360ff821686610e52565b50610e41565b610637565b5050602080850151604080870151606088015160808901519251636eb1769f60e11b8152602480356001600160a01b0390811660048401529889169082015299959897939691959094929392918a916044918391165afa801561093b57600090610907575b610729985060c08701519260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e610b6d565b8d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040516020815281516101a0602083015260018060a01b038151166101c083015260208101516101e083015260408101516102008301526060810151610220830152608081015161024083015260a081015161026083015261014061081f6107e660c0840151610160610280870152610320860190610a91565b60e08401516001600160a01b03166102a08601526101008401516102c08601526101208401518582036101bf19016102e0870152610a91565b910151610300830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b8383106108da578680876101808b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101518285015201516101a08301520390f35b90919293946020806108f8600193601f198682030187528951610ab6565b97019301930191939290610887565b506020883d602011610933575b8161092160209383610bf9565b810103126101d05761072997516106f3565b3d9150610914565b6040513d6000823e3d90fd5b60209061095261190b565b8282880101520161062b565b9a5060208d3d60201161098c575b8161097960209383610bf9565b810103126101d0576105c29c519a6105b4565b3d915061096c565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109d4575b816109c560209383610bf9565b810103126101d0575187610537565b3d91506109b8565b90506020813d602011610a06575b816109f760209383610bf9565b810103126101d05751856104eb565b3d91506109ea565b9091506020813d602011610a3a575b81610a2a60209383610bf9565b810103126101d0575190846104af565b3d9150610a1d565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610a815750506000910152565b8181015183820152602001610a71565b90602091610aaa81518092818552858086019101610a6e565b601f01601f1916010190565b90610b5460018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b0860a08501516101c08060a0870152850190610a91565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610a91565b9161018080820151908301526101a08091015191015290565b6101a081019081106001600160401b0382111761034657604052565b61016081019081106001600160401b0382111761034657604052565b61018081019081106001600160401b0382111761034657604052565b61010081019081106001600160401b0382111761034657604052565b6101c081019081106001600160401b0382111761034657604052565b90601f801991011681019081106001600160401b0382111761034657604052565b35906001600160a01b03821682036101d057565b6001600160401b03811161034657601f01601f191660200190565b81601f820112156101d057803590610c6082610c2e565b92610c6e6040519485610bf9565b828452602083830101116101d057816000926020809301838601378301015290565b90610d1760018060a01b038084511683526020840151602084015260408401516040840152610cce6060850151610160806060870152850190610a91565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610a91565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b51906001600160401b03821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d0578051906001600160401b0382116101d0570181601f820112156101d0578051610da781610c2e565b92610db56040519485610bf9565b818452602082840101116101d057610dd39160208085019101610a6e565b90565b6001600160401b0381116103465760051b60200190565b60405190610dfa82610b89565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109945760010190565b8051821015610e665760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610994570290565b6080526000610160604051610ea981610ba5565b604051610eb581610bc1565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b03608051165afa801561093b57600060c0526118d0575b506040519063c55dae6360e01b825260208260048160018060a01b03608051165afa91821561093b57600092611894575b506040519063e7dad6bd60e01b825260208260048160018060a01b03608051165afa91821561093b57600092611858575b506040519163300e6beb60e01b835260208360048160018060a01b03608051165afa92831561093b57600093611824575b506040516355d3f8af60e11b8152608051602090829060049082906001600160a01b03165afa90811561093b576000916117f2575b506040519363189bb2f160e01b855260208560048160018060a01b03608051165afa94851561093b576000956117be575b5060405190634f54cd2d60e11b825260208260048160018060a01b03608051165afa91821561093b5760009261178a575b50604051936349b270c560e11b855260208560048160018060a01b03608051165afa94851561093b57600095611756575b5060405197637eb7113160e01b895260208960048160018060a01b03608051165afa98891561093b57600099611722575b50604051926318160ddd60e01b845260208460048160018060a01b03608051165afa93841561093b576000946116ee575b506040519163020a17bd60e61b835260208360048160018060a01b03608051165afa92831561093b576000936116ba575b506040519363b9f0baf760e01b85526101008560048160018060a01b03608051165afa94851561093b576000956115ee575b50604051634fd41dad60e11b8152600481018d9052608051602090829060249082906001600160a01b03165afa801561093b57600060a0526115b3575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b03608051165afa9b8c1561093b5760009c611577575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561093b5760009461155a575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561093b57600061014052611526575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561093b57600092611501575b506040516341976e0960e01b81526001600160a01b03848116600483015260805191959160209187916024918391165afa94851561093b576000956114cd575b506040516101208181526370a0823160e01b90915260805181516001600160a01b039182166004909101529051602091602490829085165afa80610100521561093b5760009061010051611495575b61131a6040518060e052610bc1565b60018060a01b031660e05152602060e051015261014051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e08051015261137060ff60c05116610dd6565b9761137e604051998a610bf9565b60ff60c051168952601f1961139760ff60c05116610dd6565b0160005b81811061147d57505060005b60ff60c0511660ff821610156113e757806113c76113e292608051611989565b6113d460ff83168d610e52565b5261068360ff82168c610e52565b6113a7565b509193959790929496986114106001600160401b036114098160a05116610e7c565b9216610e7c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61143a8c610ba5565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b6020809361148b610ded565b920101520161139b565b905060203d6020116114c6575b6114af8161012051610bf9565b6020610120518092810103126101d057519061130b565b503d6114a2565b9094506020813d6020116114f9575b816114e960209383610bf9565b810103126101d0575193386112bc565b3d91506114dc565b61151f9192503d806000833e6115178183610bf9565b810190610d75565b903861127c565b6020813d602011611552575b8161153f60209383610bf9565b810103126101d05751610140523861124c565b3d9150611532565b6115709194503d806000833e6115178183610bf9565b923861121b565b909b506020813d6020116115ab575b8161159360209383610bf9565b810103126101d0576115a490610d47565b9a386111eb565b3d9150611586565b6020813d6020116115e6575b816115cc60209383610bf9565b810103126101d0576115dd90610d47565b60a052386111b5565b3d91506115bf565b909450610100813d610100116116b2575b8161160d6101009383610bf9565b810103126101d0576040519061162282610bc1565b61162b81610d47565b825261163960208201610d47565b602083015261164a60408201610d47565b604083015261165b60608201610d47565b606083015261166c60808201610d5b565b608083015261167d60a08201610d5b565b60a083015260c081015164ffffffffff811681036101d05760c08301526116a69060e001610d25565b60e08201529338611178565b3d91506115ff565b9092506020813d6020116116e6575b816116d660209383610bf9565b810103126101d057519138611146565b3d91506116c9565b9093506020813d60201161171a575b8161170a60209383610bf9565b810103126101d057519238611115565b3d91506116fd565b9098506020813d60201161174e575b8161173e60209383610bf9565b810103126101d0575197386110e4565b3d9150611731565b9094506020813d602011611782575b8161177260209383610bf9565b810103126101d0575193386110b3565b3d9150611765565b9091506020813d6020116117b6575b816117a660209383610bf9565b810103126101d057519038611082565b3d9150611799565b9094506020813d6020116117ea575b816117da60209383610bf9565b810103126101d057519338611051565b3d91506117cd565b90506020813d60201161181c575b8161180d60209383610bf9565b810103126101d0575138611020565b3d9150611800565b9092506020813d602011611850575b8161184060209383610bf9565b810103126101d057519138610feb565b3d9150611833565b9091506020813d60201161188c575b8161187460209383610bf9565b810103126101d05761188590610d33565b9038610fba565b3d9150611867565b9091506020813d6020116118c8575b816118b060209383610bf9565b810103126101d0576118c190610d33565b9038610f89565b3d91506118a3565b6020813d602011611903575b816118e960209383610bf9565b810103126101d0576118fa90610d25565b60c05238610f58565b3d91506118dc565b6040519061191882610bdd565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b90611992610ded565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611b9857600093611c36575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c2b57600092611bfb575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b6e57908c97969594939291600095611be0575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bd557908c9160009a611ba3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611b985760009e611b79575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b6e5760009d611b3c575b5082519d8e611b0a81610b89565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b67575b611b538183610bf9565b81010312611b645750519b38611afc565b80fd5b503d611b49565b83513d6000823e3d90fd5b611b90908493929f3d8091833e6115178183610bf9565b9d9091611acc565b85513d6000823e3d90fd5b9150988282813d8311611bce575b611bbb8183610bf9565b81010312611b6457508b90519838611a8d565b503d611bb1565b84513d6000823e3d90fd5b611bf491953d8091833e6115178183610bf9565b9338611a59565b90918582813d8311611c24575b611c128183610bf9565b81010312611b64575051906004611a16565b503d611c08565b50513d6000823e3d90fd5b90928382813d8311611ce8575b611c4d8183610bf9565b81010312611b645750611cdc60e0865192611c6784610bc1565b611c7081610d25565b8452611c7e60208201610d33565b6020850152611c8e888201610d33565b88850152611c9e60608201610d47565b6060850152611caf60808201610d47565b6080850152611cc060a08201610d47565b60a0850152611cd160c08201610d47565b60c085015201611975565b60e082015291386119d3565b503d611c43565b9190611cf961190b565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561093b57600092611ed6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561093b57600091611e9c575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561093b5760009d611e68575b50604051809e611e1482610bdd565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611e94575b81611e8360209383610bf9565b81010312611b645750519b38611e05565b3d9150611e76565b906020823d602011611ece575b81611eb660209383610bf9565b81010312611b645750611ec890611975565b38611d84565b3d9150611ea9565b90916020823d602011611f03575b81611ef160209383610bf9565b81010312611b64575051906020611d40565b3d9150611ee456fea2646970667358221220104d98973b7c67efe7ab17dda9bcccaaa198c3995ad6fc0cb230c592841abcd464736f6c63430008100033", - "sourceMap": "4152:7746:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8351:12;;;:::i;:::-;4152:7746;;-1:-1:-1;;;8400:24:1;;4152:7746;;;-1:-1:-1;;;;;4152:7746:1;;;;8400:24;;4152:7746;;;;;;;;;;;;;8400:24;;;;;;;4152:7746;8400:24;;;4152:7746;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;8460:30:1;;4152:7746;;;-1:-1:-1;;;;;4152:7746:1;;;;8460:30;;4152:7746;;;;;;;;;8460:30;;;;;;;4152:7746;8460:30;;;4152:7746;-1:-1:-1;8587:18:1;;4152:7746;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;4152:7746:1;;;;;;8634:70;;4152:7746;;;;;;;;;;;;;;;;;;;8634:70;;;;;;;;;;4152:7746;8634:70;;;4152:7746;;;;;;;;;;8784:18;;;:25;4152:7746;8784:25;;;8827:27;4152:7746;8827:27;;4152:7746;;8873:28;;4152:7746;8915:23;4152:7746;8915:23;;;4152:7746;;;;;;;8957:28;;4152:7746;;9000:24;4152:7746;9000:24;;4152:7746;9048:33;4152:7746;9048:33;;;4152:7746;;;;;;;;;;;;;;;;;;;9104:54;;4152:7746;;;;;;;;;9104:54;;4152:7746;9104:54;;;;;;;4152:7746;9104:54;;;4152:7746;;;;-1:-1:-1;4152:7746:1;;;:::i;:::-;;;;8542:623;;4152:7746;;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;8542:623;;4152:7746;;9267:25;;;4152:7746;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11;;4152:7746;9367:3;4152:7746;9267:25;;9333;4152:7746;;;;;9329:36;;;;4152:7746;9392:71;9367:3;4152:7746;9425:28;4152:7746;;;;;;9425:28;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;4152:7746;;;9380:83;;:::i;:::-;;;4152:7746;;;9380:83;;:::i;:::-;;9367:3;:::i;:::-;9316:11;;9329:36;-1:-1:-1;;4152:7746:1;9575:26;;;4152:7746;;9636:32;;;4152:7746;;9703:32;;4152:7746;;9756:18;;4152:7746;;;-1:-1:-1;;;9801:32:1;;4152:7746;;;-1:-1:-1;;;;;4152:7746:1;;;;9801:32;;4152:7746;;;;;;;;;9329:36;;;4152:7746;;;;;;;;9329:36;4152:7746;;;;;;;;9801:32;;;;;;4152:7746;9801:32;;;9311:159;4152:7746;9886:16;;4152:7746;9886:16;;4152:7746;9925:20;4152:7746;9925:20;;4152:7746;9977:29;4152:7746;9977:29;;4152:7746;10029:20;4152:7746;10029:20;;4152:7746;10081:29;4152:7746;;10081:29;;4152:7746;10140:27;;4152:7746;;;;;;;:::i;:::-;;;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;9489:687;;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7746:1;;;;;;:::i;:::-;;;;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9489:687;;;4152:7746;9489:687;4152:7746;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;;9489:687;;4152:7746;;;;;9489:687;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9801:32;;4152:7746;9801:32;;4152:7746;9801:32;;;;;;4152:7746;9801:32;;;:::i;:::-;;;4152:7746;;;;;;;9801:32;;;;;-1:-1:-1;9801:32:1;;;4152:7746;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9104:54;;;4152:7746;9104:54;;4152:7746;9104:54;;;;;;4152:7746;9104:54;;;:::i;:::-;;;4152:7746;;;;;;;9104:54;;;;;;-1:-1:-1;9104:54:1;;4152:7746;;;;;;;;;;;;8634:70;;;4152:7746;8634:70;;4152:7746;8634:70;;;;;;4152:7746;8634:70;;;:::i;:::-;;;4152:7746;;;;;8634:70;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;4152:7746;8460:30;;4152:7746;8460:30;;;;;;4152:7746;8460:30;;;:::i;:::-;;;4152:7746;;;;;8460:30;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;;4152:7746;8400:24;;4152:7746;8400:24;;;;;;4152:7746;8400:24;;;:::i;:::-;;;4152:7746;;;;;8400:24;;;;;;;-1:-1:-1;8400:24:1;;4152:7746;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7746:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4152:7746:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;-1:-1:-1;;;;;4152:7746:1;;;;;;-1:-1:-1;;4152:7746:1;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18;;;;;;;;;;;;;;;;;:::o;6145:2007::-;;;-1:-1:-1;4152:7746:1;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6145:2007;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007;4152:7746;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6236:17;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6236:17;;;;;;-1:-1:-1;4152:7746:1;6236:17;;;6145:2007;4152:7746;;;;;;;6279:17;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6279:17;;;;;;;-1:-1:-1;6279:17:1;;;6145:2007;4152:7746;;;;;;;6331:26;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6331:26;;;;;;;-1:-1:-1;6331:26:1;;;6145:2007;4152:7746;;;;;;;6380:21;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6380:21;;;;;;;-1:-1:-1;6380:21:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;6433:26:1;;6145:2007;6236:15;4152:7746;;;;6236:17;;4152:7746;;-1:-1:-1;;;;;4152:7746:1;6433:26;;;;;;;-1:-1:-1;6433:26:1;;;6145:2007;4152:7746;;;;;;;6496:31;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6496:31;;;;;;;-1:-1:-1;6496:31:1;;;6145:2007;4152:7746;;;;;;;6564:31;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6564:31;;;;;;;-1:-1:-1;6564:31:1;;;6145:2007;4152:7746;;;;;;;6626:25;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6626:25;;;;;;;-1:-1:-1;6626:25:1;;;6145:2007;4152:7746;;;;;;;6676:22;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6676:22;;;;;;;-1:-1:-1;6676:22:1;;;6145:2007;4152:7746;;;;;;;6723:19;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6723:19;;;;;;;-1:-1:-1;6723:19:1;;;6145:2007;4152:7746;;;;;;;6767:19;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6767:19;;;;;;;-1:-1:-1;6767:19:1;;;6145:2007;4152:7746;;;;;;;6831:19;;4152:7746;;6236:17;4152:7746;;;;;;6145:2007;6236:15;4152:7746;6831:19;;;;;;;-1:-1:-1;6831:19:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;6883:32:1;;6236:17;6883:32;;4152:7746;;;6145:2007;6236:15;4152:7746;;;;;;;;-1:-1:-1;;;;;4152:7746:1;6883:32;;;;;;-1:-1:-1;4152:7746:1;6883:32;;;6145:2007;4152:7746;;;;;;;6948:32;;6236:17;6948:32;;4152:7746;;;;;;;;;;6145:2007;6236:15;4152:7746;6948:32;;;;;;;-1:-1:-1;6948:32:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7070:25:1;;4152:7746;-1:-1:-1;4152:7746:1;6236:17;4152:7746;-1:-1:-1;;;;;4152:7746:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7113:27:1;;4152:7746;;6236:17;4152:7746;-1:-1:-1;;;;;4152:7746:1;;7113:27;;;;;;-1:-1:-1;4152:7746:1;7113:27;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7182:23:1;;4152:7746;-1:-1:-1;4152:7746:1;6236:17;4152:7746;-1:-1:-1;;;;;4152:7746:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;6145:2007;-1:-1:-1;4152:7746:1;;-1:-1:-1;;;7257:34:1;;-1:-1:-1;;;;;4152:7746:1;;;6236:17;7257:34;;4152:7746;6145:2007;6236:15;4152:7746;;;;;;;;;;;;7257:34;;;;;;;-1:-1:-1;7257:34:1;;;6145:2007;-1:-1:-1;4152:7746:1;;;7315:42;;;-1:-1:-1;;;7315:42:1;;;6145:2007;6236:15;7315:42;;-1:-1:-1;;;;;4152:7746:1;;;6236:17;7315:42;;;4152:7746;7315:42;;4152:7746;;;;7315:42;;4152:7746;;7315:42;;;4152:7746;7315:42;;;;-1:-1:-1;7315:42:1;4152:7746;7315:42;;;6145:2007;4152:7746;;;;;;;:::i;:::-;;;;;;;;;;;;7016:348;;4152:7746;;;;;7016:348;;4152:7746;;;7016:348;;4152:7746;6145:2007;4152:7746;7016:348;;4152:7746;;;;;;;;;7016:348;;4152:7746;;;7016:348;;4152:7746;;7016:348;;;4152:7746;;;;6219:34;4152:7746;;:::i;:::-;;;;;;;;:::i;:::-;;;6219:34;4152:7746;;;;;;;;6219:34;4152:7746;;:::i;:::-;;-1:-1:-1;4152:7746:1;;;;;;7448:11;;-1:-1:-1;7476:3:1;4152:7746;;6219:34;4152:7746;;;;7461:13;;;;7501:24;;7476:3;7501:24;6145:2007;7501:24;;:::i;:::-;7489:36;4152:7746;;;7489:36;;:::i;:::-;;;4152:7746;;;7489:36;;:::i;7476:3::-;7448:11;;7461:13;;;;;;;;;;;7866:38;-1:-1:-1;;;;;7775:38:1;6856:59;4152:7746;6856:59;4152:7746;7775:38;:::i;:::-;4152:7746;;7866:38;:::i;:::-;4152:7746;;6145:2007;7970:27;4152:7746;7970:27;;4218:18;4152:7746;8063:27;;4218:18;4152:7746;;;;;;;;:::i;:::-;;;;;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;6145:2007;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;;7551:596;;4152:7746;6145:2007;:::o;4152:7746::-;;;;;;;;:::i;:::-;;;;;;;;7315:42;;;4152:7746;7315:42;4152:7746;7315:42;;;;;;4152:7746;7315:42;;:::i;:::-;4152:7746;;;7315:42;;;;4152:7746;;;;;7315:42;;;;;;;;7257:34;;;;4152:7746;7257:34;;4152:7746;7257:34;;;;;;4152:7746;7257:34;;;:::i;:::-;;;4152:7746;;;;;7257:34;;;;;;;-1:-1:-1;7257:34:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7113:27;4152:7746;7113:27;;4152:7746;7113:27;;;;;;4152:7746;7113:27;;;:::i;:::-;;;4152:7746;;;;;;7113:27;;;;;;;-1:-1:-1;7113:27:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;;;;:::i;:::-;;;;;6948:32;;;;4152:7746;6948:32;;4152:7746;6948:32;;;;;;4152:7746;6948:32;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;6948:32;;;;;;;-1:-1:-1;6948:32:1;;6883;4152:7746;6883:32;;4152:7746;6883:32;;;;;;4152:7746;6883:32;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;;6883:32;;;;;;;-1:-1:-1;6883:32:1;;6831:19;;;;4152:7746;6831:19;;4152:7746;6831:19;;;;;;4152:7746;6831:19;;;:::i;:::-;;;4152:7746;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;6145:2007;4152:7746;;;:::i;:::-;6145:2007;4152:7746;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6831:19;;;;;;;-1:-1:-1;6831:19:1;;6767;;;;4152:7746;6767:19;;4152:7746;6767:19;;;;;;4152:7746;6767:19;;;:::i;:::-;;;4152:7746;;;;;6767:19;;;;;;;-1:-1:-1;6767:19:1;;6723;;;;4152:7746;6723:19;;4152:7746;6723:19;;;;;;4152:7746;6723:19;;;:::i;:::-;;;4152:7746;;;;;6723:19;;;;;;;-1:-1:-1;6723:19:1;;6676:22;;;;4152:7746;6676:22;;4152:7746;6676:22;;;;;;4152:7746;6676:22;;;:::i;:::-;;;4152:7746;;;;;6676:22;;;;;;;-1:-1:-1;6676:22:1;;6626:25;;;;4152:7746;6626:25;;4152:7746;6626:25;;;;;;4152:7746;6626:25;;;:::i;:::-;;;4152:7746;;;;;6626:25;;;;;;;-1:-1:-1;6626:25:1;;6564:31;;;;4152:7746;6564:31;;4152:7746;6564:31;;;;;;4152:7746;6564:31;;;:::i;:::-;;;4152:7746;;;;;6564:31;;;;;;;-1:-1:-1;6564:31:1;;6496;;;;4152:7746;6496:31;;4152:7746;6496:31;;;;;;4152:7746;6496:31;;;:::i;:::-;;;4152:7746;;;;;6496:31;;;;;;;-1:-1:-1;6496:31:1;;6433:26;;;4152:7746;6433:26;;4152:7746;6433:26;;;;;;4152:7746;6433:26;;;:::i;:::-;;;4152:7746;;;;;6433:26;;;;;;-1:-1:-1;6433:26:1;;6380:21;;;;4152:7746;6380:21;;4152:7746;6380:21;;;;;;4152:7746;6380:21;;;:::i;:::-;;;4152:7746;;;;;6380:21;;;;;;;-1:-1:-1;6380:21:1;;6331:26;;;;4152:7746;6331:26;;4152:7746;6331:26;;;;;;4152:7746;6331:26;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;6331:26;;;;;;;-1:-1:-1;6331:26:1;;6279:17;;;;4152:7746;6279:17;;4152:7746;6279:17;;;;;;4152:7746;6279:17;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;6279:17;;;;;;;-1:-1:-1;6279:17:1;;6236;4152:7746;6236:17;;4152:7746;6236:17;;;;;;4152:7746;6236:17;;;:::i;:::-;;;4152:7746;;;;;;;:::i;:::-;;6236:17;;;;;;;-1:-1:-1;6236:17:1;;4152:7746;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7746:1;;;;;;:::o;10185:782::-;;4152:7746;;:::i;:::-;-1:-1:-1;4152:7746:1;;;-1:-1:-1;;;10321:25:1;;4152:7746;;;;10321:25;;;4152:7746;;-1:-1:-1;;;;;4152:7746:1;;;;;10321:25;;4152:7746;;;;10321:25;;;;;;;-1:-1:-1;10321:25:1;;;10185:782;4152:7746;;10409:15;;;;4152:7746;;;;;;-1:-1:-1;;;;;10452:32:1;10321:25;10452:32;;;;4152:7746;;;;;;;;;;;;;;10504:33;;;;;;;;;-1:-1:-1;10504:33:1;;;10185:782;10574:35;10321:25;10574:35;;4152:7746;10574:35;;4152:7746;;10638:27;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;;;;;;;;;10681:29;;;;;;;;;;;;;;;;;;-1:-1:-1;10681:29:1;;;10185:782;10742:19;;;;4152:7746;;;;;;;;;;;;;;;10727:35;;10321:25;10727:35;;4152:7746;10727:35;;;;;;;;;;-1:-1:-1;10727:35:1;;;10185:782;4152:7746;;;10823:19;4152:7746;10823:19;4152:7746;-1:-1:-1;;;;;4152:7746:1;;;;;;;;;;;;;;;;10860:31;;;;10321:25;10860:31;-1:-1:-1;10860:31:1;;;;;;;-1:-1:-1;10860:31:1;;;10185:782;-1:-1:-1;4152:7746:1;;;-1:-1:-1;;;10914:39:1;;4152:7746;;10321:25;10914:39;;4152:7746;;;;;;;10914:39;;4152:7746;10914:39;;;;;;;-1:-1:-1;10914:39:1;;;10185:782;4152:7746;;;;;;;;:::i;:::-;;10366:596;;4152:7746;10366:596;;4152:7746;10366:596;;;4152:7746;10452:32;10366:596;;4152:7746;;10366:596;;4152:7746;10638:27;10366:596;;4152:7746;;10366:596;;4152:7746;10366:596;;4152:7746;10366:596;;;4152:7746;10366:596;;;4152:7746;10185:782;:::o;10914:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;;;10914:39;;;;4152:7746;;;10914:39;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10860:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10727:35;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;;;;;10727:35;;;;;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10681:29;;;;;;;;;;;;;:::i;:::-;;;;;10504:33;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;-1:-1:-1;4152:7746:1;;10321:25;10504:33;;;;;;;;4152:7746;;;-1:-1:-1;4152:7746:1;;;;;10321:25;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10321:25;;;;;;;;;10971:925;;;4152:7746;;:::i;:::-;-1:-1:-1;4152:7746:1;;;;-1:-1:-1;;;11271:63:1;;-1:-1:-1;;;;;4152:7746:1;;;11271:63;;;4152:7746;;;;;;;;;;;;;;;11271:63;4152:7746;;;;11271:63;;;;;;;-1:-1:-1;11271:63:1;;;10971:925;-1:-1:-1;4152:7746:1;;;;-1:-1:-1;;;11353:57:1;;-1:-1:-1;;;;;4152:7746:1;;;11271:63;11353:57;;4152:7746;;;;;;;;;11271:63;;4152:7746;;;;;;11353:57;;;;;;;-1:-1:-1;11353:57:1;;;10971:925;-1:-1:-1;11271:63:1;11438:22;;4152:7746;;11480:14;;;4152:7746;11531:31;;;4152:7746;;11591:23;;4152:7746;11630:10;;;;11657:11;;;4152:7746;;11689:15;;4152:7746;11725:15;;;4152:7746;11758:12;;;;11793:17;;;4152:7746;;;;;-1:-1:-1;;;11835:47:1;;-1:-1:-1;;;;;4152:7746:1;;;11271:63;11835:47;;4152:7746;;11758:12;;4152:7746;;;;;;;;;;11630:10;;4152:7746;;;;;11835:47;;4152:7746;11835:47;11271:63;11835:47;;;;;;;-1:-1:-1;11835:47:1;;;10971:925;4152:7746;;;;;;;;:::i;:::-;;;11271:63;11170:721;4152:7746;-1:-1:-1;;;;;4152:7746:1;;11170:721;;4152:7746;11630:10;11170:721;;4152:7746;11531:31;11170:721;;4152:7746;;11170:721;;4152:7746;11657:11;11170:721;;4152:7746;;11170:721;;4152:7746;11725:15;11170:721;;4152:7746;11758:12;11170:721;;4152:7746;11793:17;11170:721;;4152:7746;11170:721;;;4152:7746;11170:721;;;4152:7746;11170:721;;;4152:7746;10971:925;:::o;11835:47::-;;;11271:63;11835:47;;11271:63;11835:47;;;;;;11271:63;11835:47;;;:::i;:::-;;;4152:7746;;;;;;11835:47;;;;;;;-1:-1:-1;11835:47:1;;11353:57;;11271:63;11353:57;;11271:63;11353:57;;;;;;11271:63;11353:57;;;:::i;:::-;;;4152:7746;;;;;;;;:::i;:::-;11353:57;;;;;;-1:-1:-1;11353:57:1;;11271:63;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7746;;;;-1:-1:-1;4152:7746:1;;11271:63;;;;;;-1:-1:-1;11271:63:1;", + "object": "0x610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035d578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a73565b610eb3565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610ac2565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610ac2565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610cab565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a73565b6024359060ff821682036101d05761021d91610209916119a8565b604051918291602083526020830190610cab565b0390f35b346101d0576003196060368201126101d05761023b610a73565b6024359067ffffffffffffffff928383116101d057610160809184360301126101d057604051908101818110858211176103475760405261027e83600401610c34565b8152602483013560208201526044830135604082015260648301358481116101d0576102b09060043691860101610c64565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102df60e48401610c34565b60e08201526101048301356101008201526101248301359384116101d0576101446103339361031761021d9660043691840101610c64565b610120840152013561014082015261032d610a89565b91611d0f565b604051918291602083526020830190610ae7565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610376610a73565b6024356001600160a01b03811690036101d057610391610a89565b61039c610160610b9e565b6040516103a881610bbb565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015260006101a0610160015261047b82610eb3565b6040516370a0823160e01b8152602480356001600160a01b0390811660048401529194916020918691829085165afa93841561096c57600094610a3f575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401529195916020918791829086165afa94851561096c57600095610a0b575b50825151604051636eb1769f60e11b81526001600160a01b036024803582166004840152858216908301529091169590602081806044810103818a5afa90811561096c576000916109d9575b5082828103116109c357845160e08101516040808301516060840151608085015160a086015160c0870151602080890151985196516370a0823160e01b8152602480356001600160a01b039081166004840152919d999c939b9482169a95999698959693959394938e928391165afa9a8b1561096c5760009b61098f575b506040519e8f906105d282610bbb565b8152602001520360408d015260608c015260808b015260a08a015260c089015260e088015261010087015261012086015261014085015260a0820151519361061985610df3565b94604051956106289087610c12565b808652601f199061063890610df3565b0160005b81811061097857505060005b60a0840151805160ff8316101561069f579061067961069a926106726024359160ff851690610e70565b5186611d0f565b61068660ff831689610e70565b5261069460ff821688610e70565b50610e5f565b610648565b5050936020830151936040840151926060850151926020608087015193604460405180958193636eb1769f60e11b835260018060a01b0360243516600484015260018060a01b0316602483015260018060a01b03165afa91821561096c57600092610938575b5060c08601519060018060a01b0360243516319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061074b82610b9e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040516020815281516101c0602083015260018060a01b038151166101e0830152602081015161020083015260408101516102208301526060810151610240830152608081015161026083015260a081015161028083015261014061084461080b60c08401516101606102a0870152610340860190610ac2565b60e08401516001600160a01b03166102c08601526101008401516102e08601526101208401518582036101df1901610300870152610ac2565b910151610320830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061090b578680876101a08b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101518285015201516101c08301520390f35b9091929394602080610929600193601f198682030187528951610ae7565b970193019301919392906108ac565b9091506020813d602011610964575b8161095460209383610c12565b810103126101d057519088610705565b3d9150610947565b6040513d6000823e3d90fd5b60209061098361192a565b82828a0101520161063c565b909a506020813d6020116109bb575b816109ab60209383610c12565b810103126101d05751998f6105c2565b3d915061099e565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610a03575b816109f460209383610c12565b810103126101d0575187610544565b3d91506109e7565b9094506020813d602011610a37575b81610a2760209383610c12565b810103126101d0575193856104f8565b3d9150610a1a565b9093506020813d602011610a6b575b81610a5b60209383610c12565b810103126101d0575192846104b9565b3d9150610a4e565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610ab25750506000910152565b8181015183820152602001610aa2565b90602091610adb81518092818552858086019101610a9f565b601f01601f1916010190565b90610b8560018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b3960a08501516101c08060a0870152850190610ac2565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610ac2565b9161018080820151908301526101a08091015191015290565b6101c0810190811067ffffffffffffffff82111761034757604052565b610160810190811067ffffffffffffffff82111761034757604052565b610180810190811067ffffffffffffffff82111761034757604052565b610100810190811067ffffffffffffffff82111761034757604052565b90601f8019910116810190811067ffffffffffffffff82111761034757604052565b35906001600160a01b03821682036101d057565b67ffffffffffffffff811161034757601f01601f191660200190565b81601f820112156101d057803590610c7b82610c48565b92610c896040519485610c12565b828452602083830101116101d057816000926020809301838601378301015290565b90610d3260018060a01b038084511683526020840151602084015260408401516040840152610ce96060850151610160806060870152850190610ac2565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610ac2565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b519067ffffffffffffffff821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d05780519067ffffffffffffffff82116101d0570181601f820112156101d0578051610dc481610c48565b92610dd26040519485610c12565b818452602082840101116101d057610df09160208085019101610a9f565b90565b67ffffffffffffffff81116103475760051b60200190565b60405190610e1882610bbb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109c35760010190565b8051821015610e845760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109c3570290565b60a0526000610160604051610ec781610bd8565b604051610ed381610bf5565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360a051165afa801561096c57600060e0526118ef575b506040519063c55dae6360e01b825260208260048160018060a01b0360a051165afa91821561096c576000926118b3575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360a051165afa91821561096c57600092611877575b506040519163300e6beb60e01b835260208360048160018060a01b0360a051165afa92831561096c57600093611843575b506040516355d3f8af60e11b815260a051602090829060049082906001600160a01b03165afa90811561096c57600091611811575b506040519363189bb2f160e01b855260208560048160018060a01b0360a051165afa94851561096c576000956117dd575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360a051165afa91821561096c576000926117a9575b50604051936349b270c560e11b855260208560048160018060a01b0360a051165afa94851561096c57600095611775575b5060405197637eb7113160e01b895260208960048160018060a01b0360a051165afa98891561096c57600099611741575b50604051926318160ddd60e01b845260208460048160018060a01b0360a051165afa93841561096c5760009461170d575b506040519163020a17bd60e61b835260208360048160018060a01b0360a051165afa92831561096c576000936116d9575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360a051165afa94851561096c5760009561160d575b50604051634fd41dad60e11b8152600481018d905260a051602090829060249082906001600160a01b03165afa801561096c57600060c0526115d2575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360a051165afa9b8c1561096c5760009c611596575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561096c57600094611579575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561096c57600061010052611545575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561096c57600092611520575b506040516341976e0960e01b81526001600160a01b03848116600483015260a05191959160209187916024918391165afa94851561096c576000956114ec575b506040516101408181526370a0823160e01b90915260a05181516001600160a01b039182166004909101529051602091602490829085165afa80610120521561096c57600090610120516114b4575b61133860405180608052610bf5565b60018060a01b0316608051526020608051015261010051604060805101526060608051015260808051015260018060a01b031660a0608051015260c0608051015260e0608051015261138e60ff60e05116610df3565b9761139c604051998a610c12565b60ff60e051168952601f196113b560ff60e05116610df3565b0160005b81811061149c57505060005b60ff60e0511660ff8216101561140557806113e56114009260a0516119a8565b6113f260ff83168d610e70565b5261069460ff82168c610e70565b6113c5565b5091939597909294969861142f67ffffffffffffffff6114288160c05116610e9a565b9216610e9a565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6114598c610bd8565b6080518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936114aa610e0b565b92010152016113b9565b905060203d6020116114e5575b6114ce8161014051610c12565b6020610140518092810103126101d0575190611329565b503d6114c1565b9094506020813d602011611518575b8161150860209383610c12565b810103126101d0575193386112da565b3d91506114fb565b61153e9192503d806000833e6115368183610c12565b810190610d91565b903861129a565b6020813d602011611571575b8161155e60209383610c12565b810103126101d05751610100523861126a565b3d9150611551565b61158f9194503d806000833e6115368183610c12565b9238611239565b909b506020813d6020116115ca575b816115b260209383610c12565b810103126101d0576115c390610d62565b9a38611209565b3d91506115a5565b6020813d602011611605575b816115eb60209383610c12565b810103126101d0576115fc90610d62565b60c052386111d3565b3d91506115de565b909450610100813d610100116116d1575b8161162c6101009383610c12565b810103126101d0576040519061164182610bf5565b61164a81610d62565b825261165860208201610d62565b602083015261166960408201610d62565b604083015261167a60608201610d62565b606083015261168b60808201610d77565b608083015261169c60a08201610d77565b60a083015260c081015164ffffffffff811681036101d05760c08301526116c59060e001610d40565b60e08201529338611196565b3d915061161e565b9092506020813d602011611705575b816116f560209383610c12565b810103126101d057519138611164565b3d91506116e8565b9093506020813d602011611739575b8161172960209383610c12565b810103126101d057519238611133565b3d915061171c565b9098506020813d60201161176d575b8161175d60209383610c12565b810103126101d057519738611102565b3d9150611750565b9094506020813d6020116117a1575b8161179160209383610c12565b810103126101d0575193386110d1565b3d9150611784565b9091506020813d6020116117d5575b816117c560209383610c12565b810103126101d0575190386110a0565b3d91506117b8565b9094506020813d602011611809575b816117f960209383610c12565b810103126101d05751933861106f565b3d91506117ec565b90506020813d60201161183b575b8161182c60209383610c12565b810103126101d057513861103e565b3d915061181f565b9092506020813d60201161186f575b8161185f60209383610c12565b810103126101d057519138611009565b3d9150611852565b9091506020813d6020116118ab575b8161189360209383610c12565b810103126101d0576118a490610d4e565b9038610fd8565b3d9150611886565b9091506020813d6020116118e7575b816118cf60209383610c12565b810103126101d0576118e090610d4e565b9038610fa7565b3d91506118c2565b6020813d602011611922575b8161190860209383610c12565b810103126101d05761191990610d40565b60e05238610f76565b3d91506118fb565b6040519061193782610b9e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b906119b1610e0b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611bb857600093611c56575b5060209283810193838551169667ffffffffffffffff9060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c4b57600092611c1b575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b8e57908c97969594939291600095611c00575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bf557908c9160009a611bc3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611bb85760009e611b99575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b8e5760009d611b5c575b5082519d8e611b2a81610bbb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b87575b611b738183610c12565b81010312611b845750519b38611b1c565b80fd5b503d611b69565b83513d6000823e3d90fd5b611bb0908493929f3d8091833e6115368183610c12565b9d9091611aec565b85513d6000823e3d90fd5b9150988282813d8311611bee575b611bdb8183610c12565b81010312611b8457508b90519838611aad565b503d611bd1565b84513d6000823e3d90fd5b611c1491953d8091833e6115368183610c12565b9338611a79565b90918582813d8311611c44575b611c328183610c12565b81010312611b84575051906004611a36565b503d611c28565b50513d6000823e3d90fd5b90928382813d8311611d08575b611c6d8183610c12565b81010312611b845750611cfc60e0865192611c8784610bf5565b611c9081610d40565b8452611c9e60208201610d4e565b6020850152611cae888201610d4e565b88850152611cbe60608201610d62565b6060850152611ccf60808201610d62565b6080850152611ce060a08201610d62565b60a0850152611cf160c08201610d62565b60c085015201611994565b60e082015291386119f2565b503d611c63565b9190611d1961192a565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561096c57600092611ef6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561096c57600091611ebc575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561096c5760009d611e88575b50604051809e611e3482610b9e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611eb4575b81611ea360209383610c12565b81010312611b845750519b38611e25565b3d9150611e96565b906020823d602011611eee575b81611ed660209383610c12565b81010312611b845750611ee890611994565b38611da4565b3d9150611ec9565b90916020823d602011611f23575b81611f1160209383610c12565b81010312611b84575051906020611d60565b3d9150611f0456fea26469706673582212202e937a4bca8f6b184d39d37d48af5f8ef4770ad89df318b8478fb02a02515f6964736f6c63430008100033", + "sourceMap": "4152:7832:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:12;;;:::i;:::-;4152:7832;;-1:-1:-1;;;8435:24:1;;4152:7832;;;-1:-1:-1;;;;;4152:7832:1;;;;8435:24;;4152:7832;;;;;;;;;;;;8435:24;;;;;;;4152:7832;8435:24;;;4152:7832;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;8495:30:1;;4152:7832;;;-1:-1:-1;;;;;4152:7832:1;;;;8495:30;;4152:7832;;;;;;;;;;;;8495:30;;;;;;;4152:7832;8495:30;;;4152:7832;-1:-1:-1;8622:18:1;;4152:7832;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;4152:7832:1;;;;;;8669:70;;4152:7832;;;;;;;;;;;;;;;;;;;8669:70;;;;;;;;;;4152:7832;8669:70;;;4152:7832;;;;;;;;;8819:18;;4152:7832;8819:25;;;4152:7832;8862:27;;;4152:7832;;8908:28;;4152:7832;;8950:23;;;4152:7832;8992:28;;4152:7832;;9035:24;;4152:7832;;9083:33;;;4152:7832;;;;;-1:-1:-1;;;9139:54:1;;4152:7832;;;-1:-1:-1;;;;;4152:7832:1;;;;9139:54;;4152:7832;;;8819:25;;4152:7832;;;;;;8950:23;;4152:7832;;;;8819:25;;:18;;9083:33;4152:7832;;;;;9139:54;;;;;;;4152:7832;9139:54;;;4152:7832;;;;;;;;;;:::i;:::-;;;;8577:623;4152:7832;;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;9302:25;;;4152:7832;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4152:7832:1;;;;:::i;:::-;;;;;;;;;9351:11;;4152:7832;9402:3;4152:7832;9302:25;;9368;4152:7832;;;;;9364:36;;;;4152:7832;9427:71;9402:3;4152:7832;9460:28;4152:7832;;;;;;9460:28;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;4152:7832;;;9415:83;;:::i;:::-;;;4152:7832;;;9415:83;;:::i;:::-;;9402:3;:::i;:::-;9351:11;;9364:36;;;;4152:7832;9610:26;;4152:7832;9671:32;4152:7832;9671:32;;4152:7832;9738:32;4152:7832;9738:32;;4152:7832;9791:18;4152:7832;;9791:18;;4152:7832;;;;;;;;;;;;9836:32;;4152:7832;;;;;;;;;9836:32;;4152:7832;;;;;;;;;;;;;;;;;9836:32;;;;;;;4152:7832;9836:32;;;9346:159;9921:16;4152:7832;9921:16;;4152:7832;;;;;;;;;;9973:15;10011:20;4152:7832;10011:20;;4152:7832;10063:29;4152:7832;10063:29;;4152:7832;10115:20;4152:7832;10115:20;;4152:7832;10167:29;4152:7832;;10167:29;;4152:7832;10226:27;;4152:7832;;;;;;;;;;;:::i;:::-;;;9524:738;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;4152:7832:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;:::i;:::-;;;;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9524:738;;;4152:7832;9524:738;4152:7832;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;9524:738;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9836:32;;;;4152:7832;9836:32;;4152:7832;9836:32;;;;;;4152:7832;9836:32;;;:::i;:::-;;;4152:7832;;;;;9836:32;;;;;;;-1:-1:-1;9836:32:1;;;4152:7832;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9139:54;;;;4152:7832;9139:54;;4152:7832;9139:54;;;;;;4152:7832;9139:54;;;:::i;:::-;;;4152:7832;;;;;9139:54;;;;;;;-1:-1:-1;9139:54:1;;4152:7832;;;;;;;;;;;;8669:70;;;4152:7832;8669:70;;4152:7832;8669:70;;;;;;4152:7832;8669:70;;;:::i;:::-;;;4152:7832;;;;;8669:70;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;;4152:7832;8495:30;;4152:7832;8495:30;;;;;;4152:7832;8495:30;;;:::i;:::-;;;4152:7832;;;;;8495:30;;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;;4152:7832;8435:24;;4152:7832;8435:24;;;;;;4152:7832;8435:24;;;:::i;:::-;;;4152:7832;;;;;8435:24;;;;;;;-1:-1:-1;8435:24:1;;4152:7832;;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7832:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4152:7832:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7832:1;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18;;;;;;;;;;;;;;;;;:::o;6180:2007::-;;;-1:-1:-1;4152:7832:1;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6271:17;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6271:17;;;;;;-1:-1:-1;4152:7832:1;6271:17;;;6180:2007;4152:7832;;;;;;;6314:17;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6314:17;;;;;;;-1:-1:-1;6314:17:1;;;6180:2007;4152:7832;;;;;;;6366:26;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6366:26;;;;;;;-1:-1:-1;6366:26:1;;;6180:2007;4152:7832;;;;;;;6415:21;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6415:21;;;;;;;-1:-1:-1;6415:21:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;6468:26:1;;4152:7832;6271:15;4152:7832;;;;6271:17;;4152:7832;;-1:-1:-1;;;;;4152:7832:1;6468:26;;;;;;;-1:-1:-1;6468:26:1;;;6180:2007;4152:7832;;;;;;;6531:31;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6531:31;;;;;;;-1:-1:-1;6531:31:1;;;6180:2007;4152:7832;;;;;;;6599:31;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6599:31;;;;;;;-1:-1:-1;6599:31:1;;;6180:2007;4152:7832;;;;;;;6661:25;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6661:25;;;;;;;-1:-1:-1;6661:25:1;;;6180:2007;4152:7832;;;;;;;6711:22;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6711:22;;;;;;;-1:-1:-1;6711:22:1;;;6180:2007;4152:7832;;;;;;;6758:19;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6758:19;;;;;;;-1:-1:-1;6758:19:1;;;6180:2007;4152:7832;;;;;;;6802:19;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6802:19;;;;;;;-1:-1:-1;6802:19:1;;;6180:2007;4152:7832;;;;;;;6866:19;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6866:19;;;;;;;-1:-1:-1;6866:19:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;6918:32:1;;6271:17;6918:32;;4152:7832;;;;6271:15;4152:7832;;;;;;;;-1:-1:-1;;;;;4152:7832:1;6918:32;;;;;;-1:-1:-1;4152:7832:1;6918:32;;;6180:2007;4152:7832;;;;;;;6983:32;;6271:17;6983:32;;4152:7832;;;;;;;;;;6180:2007;6271:15;4152:7832;6983:32;;;;;;;-1:-1:-1;6983:32:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7105:25:1;;4152:7832;-1:-1:-1;4152:7832:1;6271:17;4152:7832;-1:-1:-1;;;;;4152:7832:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7148:27:1;;4152:7832;;6271:17;4152:7832;-1:-1:-1;;;;;4152:7832:1;;7148:27;;;;;;-1:-1:-1;4152:7832:1;7148:27;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7217:23:1;;4152:7832;-1:-1:-1;4152:7832:1;6271:17;4152:7832;-1:-1:-1;;;;;4152:7832:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7292:34:1;;-1:-1:-1;;;;;4152:7832:1;;;6271:17;7292:34;;4152:7832;;6271:15;4152:7832;;;;;;;;;;;;7292:34;;;;;;;-1:-1:-1;7292:34:1;;;6180:2007;-1:-1:-1;4152:7832:1;;;7350:42;;;-1:-1:-1;;;7350:42:1;;;4152:7832;6271:15;7350:42;;-1:-1:-1;;;;;4152:7832:1;;;6271:17;7350:42;;;4152:7832;7350:42;;4152:7832;;;;7350:42;;4152:7832;;7350:42;;;4152:7832;7350:42;;;;-1:-1:-1;7350:42:1;4152:7832;7350:42;;;6180:2007;4152:7832;;;;;;;:::i;:::-;;;;;;;;;;;;7051:348;;4152:7832;;;;;7051:348;;4152:7832;;;7051:348;;4152:7832;;7051:348;;;4152:7832;;;;;;;6180:2007;4152:7832;7051:348;;4152:7832;;;7051:348;;4152:7832;;;7051:348;;4152:7832;;;;6254:34;4152:7832;;:::i;:::-;;;;;;;;:::i;:::-;;;6254:34;4152:7832;;;;;;;;6254:34;4152:7832;;:::i;:::-;;-1:-1:-1;4152:7832:1;;;;;;7483:11;;-1:-1:-1;7511:3:1;4152:7832;;6254:34;4152:7832;;;;7496:13;;;;7536:24;;7511:3;7536:24;6180:2007;7536:24;;:::i;:::-;7524:36;4152:7832;;;7524:36;;:::i;:::-;;;4152:7832;;;7524:36;;:::i;7511:3::-;7483:11;;7496:13;;;;;;;;;;;7901:38;4152:7832;7810:38;6891:59;4152:7832;6891:59;4152:7832;7810:38;:::i;:::-;4152:7832;;7901:38;:::i;:::-;4152:7832;;;8005:27;6180:2007;8005:27;;4218:18;4152:7832;8098:27;;4218:18;4152:7832;;;;;;;;:::i;:::-;;;;;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;6180:2007;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;6180:2007;:::o;4152:7832::-;;;;;;;;:::i;:::-;;;;;;;;7350:42;;;4152:7832;7350:42;4152:7832;7350:42;;;;;;4152:7832;7350:42;;:::i;:::-;4152:7832;;;7350:42;;;;4152:7832;;;;;7350:42;;;;;;;;7292:34;;;;4152:7832;7292:34;;4152:7832;7292:34;;;;;;4152:7832;7292:34;;;:::i;:::-;;;4152:7832;;;;;7292:34;;;;;;;-1:-1:-1;7292:34:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7148:27;4152:7832;7148:27;;4152:7832;7148:27;;;;;;4152:7832;7148:27;;;:::i;:::-;;;4152:7832;;;;;;7148:27;;;;;;;-1:-1:-1;7148:27:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;;;;:::i;:::-;;;;;6983:32;;;;4152:7832;6983:32;;4152:7832;6983:32;;;;;;4152:7832;6983:32;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;6983:32;;;;;;;-1:-1:-1;6983:32:1;;6918;4152:7832;6918:32;;4152:7832;6918:32;;;;;;4152:7832;6918:32;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;;6918:32;;;;;;;-1:-1:-1;6918:32:1;;6866:19;;;;4152:7832;6866:19;;4152:7832;6866:19;;;;;;4152:7832;6866:19;;;:::i;:::-;;;4152:7832;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;6180:2007;4152:7832;;;:::i;:::-;6180:2007;4152:7832;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6866:19;;;;;;;-1:-1:-1;6866:19:1;;6802;;;;4152:7832;6802:19;;4152:7832;6802:19;;;;;;4152:7832;6802:19;;;:::i;:::-;;;4152:7832;;;;;6802:19;;;;;;;-1:-1:-1;6802:19:1;;6758;;;;4152:7832;6758:19;;4152:7832;6758:19;;;;;;4152:7832;6758:19;;;:::i;:::-;;;4152:7832;;;;;6758:19;;;;;;;-1:-1:-1;6758:19:1;;6711:22;;;;4152:7832;6711:22;;4152:7832;6711:22;;;;;;4152:7832;6711:22;;;:::i;:::-;;;4152:7832;;;;;6711:22;;;;;;;-1:-1:-1;6711:22:1;;6661:25;;;;4152:7832;6661:25;;4152:7832;6661:25;;;;;;4152:7832;6661:25;;;:::i;:::-;;;4152:7832;;;;;6661:25;;;;;;;-1:-1:-1;6661:25:1;;6599:31;;;;4152:7832;6599:31;;4152:7832;6599:31;;;;;;4152:7832;6599:31;;;:::i;:::-;;;4152:7832;;;;;6599:31;;;;;;;-1:-1:-1;6599:31:1;;6531;;;;4152:7832;6531:31;;4152:7832;6531:31;;;;;;4152:7832;6531:31;;;:::i;:::-;;;4152:7832;;;;;6531:31;;;;;;;-1:-1:-1;6531:31:1;;6468:26;;;4152:7832;6468:26;;4152:7832;6468:26;;;;;;4152:7832;6468:26;;;:::i;:::-;;;4152:7832;;;;;6468:26;;;;;;-1:-1:-1;6468:26:1;;6415:21;;;;4152:7832;6415:21;;4152:7832;6415:21;;;;;;4152:7832;6415:21;;;:::i;:::-;;;4152:7832;;;;;6415:21;;;;;;;-1:-1:-1;6415:21:1;;6366:26;;;;4152:7832;6366:26;;4152:7832;6366:26;;;;;;4152:7832;6366:26;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;6366:26;;;;;;;-1:-1:-1;6366:26:1;;6314:17;;;;4152:7832;6314:17;;4152:7832;6314:17;;;;;;4152:7832;6314:17;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;6314:17;;;;;;;-1:-1:-1;6314:17:1;;6271;4152:7832;6271:17;;4152:7832;6271:17;;;;;;4152:7832;6271:17;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;;6271:17;;;;;;;-1:-1:-1;6271:17:1;;4152:7832;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;10271:782::-;;4152:7832;;:::i;:::-;-1:-1:-1;4152:7832:1;;;-1:-1:-1;;;10407:25:1;;4152:7832;;;;10407:25;;;4152:7832;;-1:-1:-1;;;;;4152:7832:1;;;;;10407:25;;4152:7832;;;;10407:25;;;;;;;-1:-1:-1;10407:25:1;;;10271:782;4152:7832;;10495:15;;;;4152:7832;;;;;;;10538:32;10407:25;10538:32;;;;4152:7832;;;;;;;;;;;;;;10590:33;;;;;;;;;-1:-1:-1;10590:33:1;;;10271:782;10660:35;10407:25;10660:35;;4152:7832;10660:35;;4152:7832;;10724:27;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;10767:29;;;;;;;;;;;;;;;;;;-1:-1:-1;10767:29:1;;;10271:782;10828:19;;;;4152:7832;;;;;;;;;;;;;;;10813:35;;10407:25;10813:35;;4152:7832;10813:35;;;;;;;;;;-1:-1:-1;10813:35:1;;;10271:782;4152:7832;;;10909:19;4152:7832;10909:19;4152:7832;-1:-1:-1;;;;;4152:7832:1;;;;;;;;;;;;;;;;10946:31;;;;10407:25;10946:31;-1:-1:-1;10946:31:1;;;;;;;-1:-1:-1;10946:31:1;;;10271:782;-1:-1:-1;4152:7832:1;;;-1:-1:-1;;;11000:39:1;;4152:7832;;10407:25;11000:39;;4152:7832;;;;;;;11000:39;;4152:7832;11000:39;;;;;;;-1:-1:-1;11000:39:1;;;10271:782;4152:7832;;;;;;;;:::i;:::-;;10452:596;;4152:7832;10452:596;;4152:7832;10452:596;;;4152:7832;10538:32;10452:596;;4152:7832;;10452:596;;4152:7832;10724:27;10452:596;;4152:7832;;10452:596;;4152:7832;10452:596;;4152:7832;10452:596;;;4152:7832;10452:596;;;4152:7832;10271:782;:::o;11000:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;;;11000:39;;;;4152:7832;;;11000:39;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10946:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10813:35;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;;;;;10813:35;;;;;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10767:29;;;;;;;;;;;;;:::i;:::-;;;;;10590:33;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;-1:-1:-1;4152:7832:1;;10407:25;10590:33;;;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10407:25;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10407:25;;;;;;;;;11057:925;;;4152:7832;;:::i;:::-;-1:-1:-1;4152:7832:1;;;;-1:-1:-1;;;11357:63:1;;-1:-1:-1;;;;;4152:7832:1;;;11357:63;;;4152:7832;;;;;;;;;;;;;;;11357:63;4152:7832;;;;11357:63;;;;;;;-1:-1:-1;11357:63:1;;;11057:925;-1:-1:-1;4152:7832:1;;;;-1:-1:-1;;;11439:57:1;;-1:-1:-1;;;;;4152:7832:1;;;11357:63;11439:57;;4152:7832;;;;;;;;;11357:63;;4152:7832;;;;;;11439:57;;;;;;;-1:-1:-1;11439:57:1;;;11057:925;-1:-1:-1;11357:63:1;11524:22;;4152:7832;;11566:14;;;4152:7832;11617:31;;;4152:7832;;11677:23;;4152:7832;11716:10;;;;11743:11;;;4152:7832;;11775:15;;4152:7832;11811:15;;;4152:7832;11844:12;;;;11879:17;;;4152:7832;;;;;-1:-1:-1;;;11921:47:1;;-1:-1:-1;;;;;4152:7832:1;;;11357:63;11921:47;;4152:7832;;11844:12;;4152:7832;;;;;;;;;;11716:10;;4152:7832;;;;;11921:47;;4152:7832;11921:47;11357:63;11921:47;;;;;;;-1:-1:-1;11921:47:1;;;11057:925;4152:7832;;;;;;;;:::i;:::-;;;11357:63;11256:721;4152:7832;-1:-1:-1;;;;;4152:7832:1;;11256:721;;4152:7832;11716:10;11256:721;;4152:7832;11617:31;11256:721;;4152:7832;;11256:721;;4152:7832;11743:11;11256:721;;4152:7832;;11256:721;;4152:7832;11811:15;11256:721;;4152:7832;11844:12;11256:721;;4152:7832;11879:17;11256:721;;4152:7832;11256:721;;;4152:7832;11256:721;;;4152:7832;11256:721;;;4152:7832;11057:925;:::o;11921:47::-;;;11357:63;11921:47;;11357:63;11921:47;;;;;;11357:63;11921:47;;;:::i;:::-;;;4152:7832;;;;;;11921:47;;;;;;;-1:-1:-1;11921:47:1;;11439:57;;11357:63;11439:57;;11357:63;11439:57;;;;;;11357:63;11439:57;;;:::i;:::-;;;4152:7832;;;;;;;;:::i;:::-;11439:57;;;;;;-1:-1:-1;11439:57:1;;11357:63;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;-1:-1:-1;4152:7832:1;;11357:63;;;;;;-1:-1:-1;11357:63:1;", "linkReferences": {} }, "methodIdentifiers": { @@ -661,7 +666,7 @@ "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"CometQuery\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"CometQuery\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b\",\"dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1284,6 +1289,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -1342,10 +1352,10 @@ }, "sources": { "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "keccak256": "0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980", "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + "bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b", + "dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ" ], "license": "UNLICENSED" } @@ -1354,20 +1364,20 @@ }, "ast": { "absolutePath": "Sleuth/CometQuery.sol", - "id": 1269, + "id": 1273, "exportedSymbols": { "Comet": [ 598 ], "CometQuery": [ - 1268 + 1272 ], "ERC20": [ 630 ] }, "nodeType": "SourceUnit", - "src": "39:11860:1", + "src": "39:11946:1", "nodes": [ { "id": 289, @@ -4990,7 +5000,7 @@ ], "name": "Comet", "nameLocation": "75:5:1", - "scope": 1269, + "scope": 1273, "usedErrors": [] }, { @@ -5371,13 +5381,13 @@ ], "name": "ERC20", "nameLocation": "3820:5:1", - "scope": 1269, + "scope": 1273, "usedErrors": [] }, { - "id": 1268, + "id": 1272, "nodeType": "ContractDefinition", - "src": "4152:7746:1", + "src": "4152:7832:1", "nodes": [ { "id": 639, @@ -5387,7 +5397,7 @@ "mutability": "constant", "name": "SECONDS_PER_YEAR", "nameLocation": "4199:16:1", - "scope": 1268, + "scope": 1272, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5751,7 +5761,7 @@ ], "name": "BaseAsset", "nameLocation": "4248:9:1", - "scope": 1268, + "scope": 1272, "visibility": "public" }, { @@ -6062,7 +6072,7 @@ ], "name": "BaseAssetWithAccountState", "nameLocation": "4436:25:1", - "scope": 1268, + "scope": 1272, "visibility": "public" }, { @@ -6373,7 +6383,7 @@ ], "name": "CollateralAsset", "nameLocation": "4702:15:1", - "scope": 1268, + "scope": 1272, "visibility": "public" }, { @@ -6765,7 +6775,7 @@ ], "name": "CollateralAssetWithAccountState", "nameLocation": "4990:31:1", - "scope": 1268, + "scope": 1272, "visibility": "public" }, { @@ -7130,13 +7140,13 @@ ], "name": "CometState", "nameLocation": "5356:10:1", - "scope": 1268, + "scope": 1272, "visibility": "public" }, { - "id": 789, + "id": 791, "nodeType": "StructDefinition", - "src": "5710:431:1", + "src": "5710:466:1", "canonicalName": "CometQuery.CometStateWithAccountState", "members": [ { @@ -7146,7 +7156,7 @@ "name": "baseAsset", "nameLocation": "5776:9:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5750:35:1", "stateVariable": false, "storageLocation": "default", @@ -7183,7 +7193,7 @@ "name": "baseMinForRewards", "nameLocation": "5796:17:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5791:22:1", "stateVariable": false, "storageLocation": "default", @@ -7210,7 +7220,7 @@ "name": "baseTrackingBorrowSpeed", "nameLocation": "5824:23:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5819:28:1", "stateVariable": false, "storageLocation": "default", @@ -7237,7 +7247,7 @@ "name": "baseTrackingSupplySpeed", "nameLocation": "5858:23:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5853:28:1", "stateVariable": false, "storageLocation": "default", @@ -7264,7 +7274,7 @@ "name": "borrowAPR", "nameLocation": "5892:9:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5887:14:1", "stateVariable": false, "storageLocation": "default", @@ -7291,7 +7301,7 @@ "name": "bulkerAllowance", "nameLocation": "5912:15:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5907:20:1", "stateVariable": false, "storageLocation": "default", @@ -7318,7 +7328,7 @@ "name": "collateralAssets", "nameLocation": "5967:16:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5933:50:1", "stateVariable": false, "storageLocation": "default", @@ -7364,7 +7374,7 @@ "name": "earnAPR", "nameLocation": "5994:7:1", "nodeType": "VariableDeclaration", - "scope": 789, + "scope": 791, "src": "5989:12:1", "stateVariable": false, "storageLocation": "default", @@ -7388,11 +7398,11 @@ "constant": false, "id": 780, "mutability": "mutable", - "name": "totalBorrow", - "nameLocation": "6012:11:1", + "name": "nativeAssetWalletBalance", + "nameLocation": "6012:24:1", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6007:16:1", + "scope": 791, + "src": "6007:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7415,11 +7425,11 @@ "constant": false, "id": 782, "mutability": "mutable", - "name": "totalBorrowPrincipal", - "nameLocation": "6034:20:1", + "name": "totalBorrow", + "nameLocation": "6047:11:1", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6029:25:1", + "scope": 791, + "src": "6042:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7430,7 +7440,7 @@ "id": 781, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6029:4:1", + "src": "6042:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7442,11 +7452,11 @@ "constant": false, "id": 784, "mutability": "mutable", - "name": "totalSupply", - "nameLocation": "6065:11:1", + "name": "totalBorrowPrincipal", + "nameLocation": "6069:20:1", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6060:16:1", + "scope": 791, + "src": "6064:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7457,7 +7467,7 @@ "id": 783, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6060:4:1", + "src": "6064:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7469,11 +7479,11 @@ "constant": false, "id": 786, "mutability": "mutable", - "name": "totalSupplyPrincipal", - "nameLocation": "6087:20:1", + "name": "totalSupply", + "nameLocation": "6100:11:1", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6082:25:1", + "scope": 791, + "src": "6095:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7484,7 +7494,7 @@ "id": 785, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6082:4:1", + "src": "6095:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7496,11 +7506,11 @@ "constant": false, "id": 788, "mutability": "mutable", - "name": "trackingIndexScale", - "nameLocation": "6118:18:1", + "name": "totalSupplyPrincipal", + "nameLocation": "6122:20:1", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "6113:23:1", + "scope": 791, + "src": "6117:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7511,7 +7521,34 @@ "id": 787, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6113:4:1", + "src": "6117:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 790, + "mutability": "mutable", + "name": "trackingIndexScale", + "nameLocation": "6153:18:1", + "nodeType": "VariableDeclaration", + "scope": 791, + "src": "6148:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 789, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6148:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7522,32 +7559,32 @@ ], "name": "CometStateWithAccountState", "nameLocation": "5717:26:1", - "scope": 1268, + "scope": 1272, "visibility": "public" }, { - "id": 979, + "id": 981, "nodeType": "FunctionDefinition", - "src": "6145:2007:1", + "src": "6180:2007:1", "body": { - "id": 978, + "id": 980, "nodeType": "Block", - "src": "6213:1939:1", + "src": "6248:1939:1", "statements": [ { "assignments": [ - 799 + 801 ], "declarations": [ { "constant": false, - "id": 799, + "id": 801, "mutability": "mutable", "name": "numAssets", - "nameLocation": "6224:9:1", + "nameLocation": "6259:9:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6219:14:1", + "scope": 980, + "src": "6254:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7555,10 +7592,10 @@ "typeString": "uint256" }, "typeName": { - "id": 798, + "id": 800, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6219:4:1", + "src": "6254:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7567,39 +7604,39 @@ "visibility": "internal" } ], - "id": 803, + "id": 805, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 800, + "id": 802, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6236:5:1", + "referencedDeclaration": 794, + "src": "6271:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 801, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6242:9:1", + "memberLocation": "6277:9:1", "memberName": "numAssets", "nodeType": "MemberAccess", "referencedDeclaration": 534, - "src": "6236:15:1", + "src": "6271:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 802, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, @@ -7608,7 +7645,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6236:17:1", + "src": "6271:17:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -7616,22 +7653,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6219:34:1" + "src": "6254:34:1" }, { "assignments": [ - 805 + 807 ], "declarations": [ { "constant": false, - "id": 805, + "id": 807, "mutability": "mutable", "name": "baseToken", - "nameLocation": "6267:9:1", + "nameLocation": "6302:9:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6259:17:1", + "scope": 980, + "src": "6294:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7639,10 +7676,10 @@ "typeString": "address" }, "typeName": { - "id": 804, + "id": 806, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6259:7:1", + "src": "6294:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7652,39 +7689,39 @@ "visibility": "internal" } ], - "id": 809, + "id": 811, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 806, + "id": 808, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6279:5:1", + "referencedDeclaration": 794, + "src": "6314:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 807, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6285:9:1", + "memberLocation": "6320:9:1", "memberName": "baseToken", "nodeType": "MemberAccess", "referencedDeclaration": 439, - "src": "6279:15:1", + "src": "6314:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 808, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, @@ -7693,7 +7730,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6279:17:1", + "src": "6314:17:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7701,22 +7738,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6259:37:1" + "src": "6294:37:1" }, { "assignments": [ - 811 + 813 ], "declarations": [ { "constant": false, - "id": 811, + "id": 813, "mutability": "mutable", "name": "baseTokenPriceFeed", - "nameLocation": "6310:18:1", + "nameLocation": "6345:18:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6302:26:1", + "scope": 980, + "src": "6337:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7724,10 +7761,10 @@ "typeString": "address" }, "typeName": { - "id": 810, + "id": 812, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6302:7:1", + "src": "6337:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7737,39 +7774,39 @@ "visibility": "internal" } ], - "id": 815, + "id": 817, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 812, + "id": 814, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6331:5:1", + "referencedDeclaration": 794, + "src": "6366:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 813, + "id": 815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6337:18:1", + "memberLocation": "6372:18:1", "memberName": "baseTokenPriceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 444, - "src": "6331:24:1", + "src": "6366:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, - "id": 814, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, @@ -7778,7 +7815,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6331:26:1", + "src": "6366:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7786,22 +7823,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6302:55:1" + "src": "6337:55:1" }, { "assignments": [ - 817 + 819 ], "declarations": [ { "constant": false, - "id": 817, + "id": 819, "mutability": "mutable", "name": "borrowMin", - "nameLocation": "6368:9:1", + "nameLocation": "6403:9:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6363:14:1", + "scope": 980, + "src": "6398:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7809,10 +7846,10 @@ "typeString": "uint256" }, "typeName": { - "id": 816, + "id": 818, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6363:4:1", + "src": "6398:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7821,39 +7858,39 @@ "visibility": "internal" } ], - "id": 821, + "id": 823, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 818, + "id": 820, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6380:5:1", + "referencedDeclaration": 794, + "src": "6415:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 819, + "id": 821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6386:13:1", + "memberLocation": "6421:13:1", "memberName": "baseBorrowMin", "nodeType": "MemberAccess", "referencedDeclaration": 524, - "src": "6380:19:1", + "src": "6415:19:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 820, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -7862,7 +7899,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6380:21:1", + "src": "6415:21:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7870,22 +7907,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6363:38:1" + "src": "6398:38:1" }, { "assignments": [ - 823 + 825 ], "declarations": [ { "constant": false, - "id": 823, + "id": 825, "mutability": "mutable", "name": "trackingIndexScale", - "nameLocation": "6412:18:1", + "nameLocation": "6447:18:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6407:23:1", + "scope": 980, + "src": "6442:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7893,10 +7930,10 @@ "typeString": "uint256" }, "typeName": { - "id": 822, + "id": 824, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6407:4:1", + "src": "6442:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7905,39 +7942,39 @@ "visibility": "internal" } ], - "id": 827, + "id": 829, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 824, + "id": 826, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6433:5:1", + "referencedDeclaration": 794, + "src": "6468:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 825, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6439:18:1", + "memberLocation": "6474:18:1", "memberName": "trackingIndexScale", "nodeType": "MemberAccess", "referencedDeclaration": 504, - "src": "6433:24:1", + "src": "6468:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 826, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, @@ -7946,7 +7983,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6433:26:1", + "src": "6468:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7954,22 +7991,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6407:52:1" + "src": "6442:52:1" }, { "assignments": [ - 829 + 831 ], "declarations": [ { "constant": false, - "id": 829, + "id": 831, "mutability": "mutable", "name": "baseTrackingSupplySpeed", - "nameLocation": "6470:23:1", + "nameLocation": "6505:23:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6465:28:1", + "scope": 980, + "src": "6500:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7977,10 +8014,10 @@ "typeString": "uint256" }, "typeName": { - "id": 828, + "id": 830, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6465:4:1", + "src": "6500:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7989,39 +8026,39 @@ "visibility": "internal" } ], - "id": 833, + "id": 835, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 830, + "id": 832, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6496:5:1", + "referencedDeclaration": 794, + "src": "6531:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 831, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6502:23:1", + "memberLocation": "6537:23:1", "memberName": "baseTrackingSupplySpeed", "nodeType": "MemberAccess", "referencedDeclaration": 509, - "src": "6496:29:1", + "src": "6531:29:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 832, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, @@ -8030,7 +8067,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6496:31:1", + "src": "6531:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8038,22 +8075,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6465:62:1" + "src": "6500:62:1" }, { "assignments": [ - 835 + 837 ], "declarations": [ { "constant": false, - "id": 835, + "id": 837, "mutability": "mutable", "name": "baseTrackingBorrowSpeed", - "nameLocation": "6538:23:1", + "nameLocation": "6573:23:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6533:28:1", + "scope": 980, + "src": "6568:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8061,10 +8098,10 @@ "typeString": "uint256" }, "typeName": { - "id": 834, + "id": 836, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6533:4:1", + "src": "6568:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8073,39 +8110,39 @@ "visibility": "internal" } ], - "id": 839, + "id": 841, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 836, + "id": 838, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6564:5:1", + "referencedDeclaration": 794, + "src": "6599:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 837, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6570:23:1", + "memberLocation": "6605:23:1", "memberName": "baseTrackingBorrowSpeed", "nodeType": "MemberAccess", "referencedDeclaration": 514, - "src": "6564:29:1", + "src": "6599:29:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 838, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -8114,7 +8151,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6564:31:1", + "src": "6599:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8122,22 +8159,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6533:62:1" + "src": "6568:62:1" }, { "assignments": [ - 841 + 843 ], "declarations": [ { "constant": false, - "id": 841, + "id": 843, "mutability": "mutable", "name": "baseMinForRewards", - "nameLocation": "6606:17:1", + "nameLocation": "6641:17:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6601:22:1", + "scope": 980, + "src": "6636:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8145,10 +8182,10 @@ "typeString": "uint256" }, "typeName": { - "id": 840, + "id": 842, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6601:4:1", + "src": "6636:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8157,39 +8194,39 @@ "visibility": "internal" } ], - "id": 845, + "id": 847, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 842, + "id": 844, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6626:5:1", + "referencedDeclaration": 794, + "src": "6661:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 843, + "id": 845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6632:17:1", + "memberLocation": "6667:17:1", "memberName": "baseMinForRewards", "nodeType": "MemberAccess", "referencedDeclaration": 519, - "src": "6626:23:1", + "src": "6661:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 844, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, @@ -8198,7 +8235,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6626:25:1", + "src": "6661:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8206,22 +8243,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6601:50:1" + "src": "6636:50:1" }, { "assignments": [ - 847 + 849 ], "declarations": [ { "constant": false, - "id": 847, + "id": 849, "mutability": "mutable", "name": "utilization", - "nameLocation": "6662:11:1", + "nameLocation": "6697:11:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6657:16:1", + "scope": 980, + "src": "6692:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8229,10 +8266,10 @@ "typeString": "uint256" }, "typeName": { - "id": 846, + "id": 848, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6657:4:1", + "src": "6692:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8241,39 +8278,39 @@ "visibility": "internal" } ], - "id": 851, + "id": 853, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 848, + "id": 850, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6676:5:1", + "referencedDeclaration": 794, + "src": "6711:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 849, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6682:14:1", + "memberLocation": "6717:14:1", "memberName": "getUtilization", "nodeType": "MemberAccess", "referencedDeclaration": 424, - "src": "6676:20:1", + "src": "6711:20:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 850, + "id": 852, "isConstant": false, "isLValue": false, "isPure": false, @@ -8282,7 +8319,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6676:22:1", + "src": "6711:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8290,22 +8327,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6657:41:1" + "src": "6692:41:1" }, { "assignments": [ - 853 + 855 ], "declarations": [ { "constant": false, - "id": 853, + "id": 855, "mutability": "mutable", "name": "totalSupply", - "nameLocation": "6709:11:1", + "nameLocation": "6744:11:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6704:16:1", + "scope": 980, + "src": "6739:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8313,10 +8350,10 @@ "typeString": "uint256" }, "typeName": { - "id": 852, + "id": 854, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6704:4:1", + "src": "6739:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8325,39 +8362,39 @@ "visibility": "internal" } ], - "id": 857, + "id": 859, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 854, + "id": 856, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6723:5:1", + "referencedDeclaration": 794, + "src": "6758:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 855, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6729:11:1", + "memberLocation": "6764:11:1", "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 386, - "src": "6723:17:1", + "src": "6758:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 856, + "id": 858, "isConstant": false, "isLValue": false, "isPure": false, @@ -8366,7 +8403,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6723:19:1", + "src": "6758:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8374,22 +8411,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6704:38:1" + "src": "6739:38:1" }, { "assignments": [ - 859 + 861 ], "declarations": [ { "constant": false, - "id": 859, + "id": 861, "mutability": "mutable", "name": "totalBorrow", - "nameLocation": "6753:11:1", + "nameLocation": "6788:11:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6748:16:1", + "scope": 980, + "src": "6783:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8397,10 +8434,10 @@ "typeString": "uint256" }, "typeName": { - "id": 858, + "id": 860, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6748:4:1", + "src": "6783:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8409,39 +8446,39 @@ "visibility": "internal" } ], - "id": 863, + "id": 865, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 860, + "id": 862, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6767:5:1", + "referencedDeclaration": 794, + "src": "6802:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 861, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6773:11:1", + "memberLocation": "6808:11:1", "memberName": "totalBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 391, - "src": "6767:17:1", + "src": "6802:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 862, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, @@ -8450,7 +8487,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6767:19:1", + "src": "6802:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8458,22 +8495,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6748:38:1" + "src": "6783:38:1" }, { "assignments": [ - 868 + 870 ], "declarations": [ { "constant": false, - "id": 868, + "id": 870, "mutability": "mutable", "name": "totalsBasic", - "nameLocation": "6817:11:1", + "nameLocation": "6852:11:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6792:36:1", + "scope": 980, + "src": "6827:36:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8481,21 +8518,21 @@ "typeString": "struct Comet.TotalsBasic" }, "typeName": { - "id": 867, + "id": 869, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 866, + "id": 868, "name": "Comet.TotalsBasic", "nameLocations": [ - "6792:5:1", - "6798:11:1" + "6827:5:1", + "6833:11:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 323, - "src": "6792:17:1" + "src": "6827:17:1" }, "referencedDeclaration": 323, - "src": "6792:17:1", + "src": "6827:17:1", "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", "typeString": "struct Comet.TotalsBasic" @@ -8504,39 +8541,39 @@ "visibility": "internal" } ], - "id": 872, + "id": 874, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 869, + "id": 871, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6831:5:1", + "referencedDeclaration": 794, + "src": "6866:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 870, + "id": 872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6837:11:1", + "memberLocation": "6872:11:1", "memberName": "totalsBasic", "nodeType": "MemberAccess", "referencedDeclaration": 581, - "src": "6831:17:1", + "src": "6866:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" } }, - "id": 871, + "id": 873, "isConstant": false, "isLValue": false, "isPure": false, @@ -8545,7 +8582,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6831:19:1", + "src": "6866:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", @@ -8553,22 +8590,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6792:58:1" + "src": "6827:58:1" }, { "assignments": [ - 874 + 876 ], "declarations": [ { "constant": false, - "id": 874, + "id": 876, "mutability": "mutable", "name": "borrowRatePerSecond", - "nameLocation": "6861:19:1", + "nameLocation": "6896:19:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6856:24:1", + "scope": 980, + "src": "6891:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8576,10 +8613,10 @@ "typeString": "uint256" }, "typeName": { - "id": 873, + "id": 875, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6856:4:1", + "src": "6891:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8588,16 +8625,16 @@ "visibility": "internal" } ], - "id": 879, + "id": 881, "initialValue": { "arguments": [ { - "id": 877, + "id": 879, "name": "utilization", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "6903:11:1", + "referencedDeclaration": 849, + "src": "6938:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8612,33 +8649,33 @@ } ], "expression": { - "id": 875, + "id": 877, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6883:5:1", + "referencedDeclaration": 794, + "src": "6918:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 876, + "id": 878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6889:13:1", + "memberLocation": "6924:13:1", "memberName": "getBorrowRate", "nodeType": "MemberAccess", "referencedDeclaration": 419, - "src": "6883:19:1", + "src": "6918:19:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", "typeString": "function (uint256) view external returns (uint64)" } }, - "id": 878, + "id": 880, "isConstant": false, "isLValue": false, "isPure": false, @@ -8647,7 +8684,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6883:32:1", + "src": "6918:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -8655,22 +8692,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6856:59:1" + "src": "6891:59:1" }, { "assignments": [ - 881 + 883 ], "declarations": [ { "constant": false, - "id": 881, + "id": 883, "mutability": "mutable", "name": "supplyRatePerSecond", - "nameLocation": "6926:19:1", + "nameLocation": "6961:19:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6921:24:1", + "scope": 980, + "src": "6956:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8678,10 +8715,10 @@ "typeString": "uint256" }, "typeName": { - "id": 880, + "id": 882, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6921:4:1", + "src": "6956:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8690,16 +8727,16 @@ "visibility": "internal" } ], - "id": 886, + "id": 888, "initialValue": { "arguments": [ { - "id": 884, + "id": 886, "name": "utilization", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "6968:11:1", + "referencedDeclaration": 849, + "src": "7003:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8714,33 +8751,33 @@ } ], "expression": { - "id": 882, + "id": 884, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "6948:5:1", + "referencedDeclaration": 794, + "src": "6983:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 883, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6954:13:1", + "memberLocation": "6989:13:1", "memberName": "getSupplyRate", "nodeType": "MemberAccess", "referencedDeclaration": 412, - "src": "6948:19:1", + "src": "6983:19:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", "typeString": "function (uint256) view external returns (uint64)" } }, - "id": 885, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -8749,7 +8786,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6948:32:1", + "src": "6983:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -8757,22 +8794,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6921:59:1" + "src": "6956:59:1" }, { "assignments": [ - 889 + 891 ], "declarations": [ { "constant": false, - "id": 889, + "id": 891, "mutability": "mutable", "name": "baseAsset", - "nameLocation": "7004:9:1", + "nameLocation": "7039:9:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "6987:26:1", + "scope": 980, + "src": "7022:26:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8780,20 +8817,20 @@ "typeString": "struct CometQuery.BaseAsset" }, "typeName": { - "id": 888, + "id": 890, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 887, + "id": 889, "name": "BaseAsset", "nameLocations": [ - "6987:9:1" + "7022:9:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 656, - "src": "6987:9:1" + "src": "7022:9:1" }, "referencedDeclaration": 656, - "src": "6987:9:1", + "src": "7022:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", "typeString": "struct CometQuery.BaseAsset" @@ -8802,16 +8839,16 @@ "visibility": "internal" } ], - "id": 923, + "id": 925, "initialValue": { "arguments": [ { - "id": 891, + "id": 893, "name": "baseToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7045:9:1", + "referencedDeclaration": 807, + "src": "7080:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8824,12 +8861,12 @@ "expression": { "arguments": [ { - "id": 893, + "id": 895, "name": "baseToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7076:9:1", + "referencedDeclaration": 807, + "src": "7111:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8843,18 +8880,18 @@ "typeString": "address" } ], - "id": 892, + "id": 894, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7070:5:1", + "src": "7105:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 894, + "id": 896, "isConstant": false, "isLValue": false, "isPure": false, @@ -8863,29 +8900,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7070:16:1", + "src": "7105:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 895, + "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7087:6:1", + "memberLocation": "7122:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 629, - "src": "7070:23:1", + "src": "7105:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" } }, - "id": 896, + "id": 898, "isConstant": false, "isLValue": false, "isPure": false, @@ -8894,7 +8931,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7070:25:1", + "src": "7105:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8908,12 +8945,12 @@ "expression": { "arguments": [ { - "id": 898, + "id": 900, "name": "baseToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7119:9:1", + "referencedDeclaration": 807, + "src": "7154:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8927,18 +8964,18 @@ "typeString": "address" } ], - "id": 897, + "id": 899, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7113:5:1", + "src": "7148:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 899, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, @@ -8947,29 +8984,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7113:16:1", + "src": "7148:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 900, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7130:8:1", + "memberLocation": "7165:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 619, - "src": "7113:25:1", + "src": "7148:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 901, + "id": 903, "isConstant": false, "isLValue": false, "isPure": false, @@ -8978,7 +9015,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7113:27:1", + "src": "7148:27:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8986,12 +9023,12 @@ } }, { - "id": 902, + "id": 904, "name": "borrowMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "7159:9:1", + "referencedDeclaration": 819, + "src": "7194:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9004,12 +9041,12 @@ "expression": { "arguments": [ { - "id": 904, + "id": 906, "name": "baseToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7188:9:1", + "referencedDeclaration": 807, + "src": "7223:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9023,18 +9060,18 @@ "typeString": "address" } ], - "id": 903, + "id": 905, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7182:5:1", + "src": "7217:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 905, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -9043,29 +9080,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7182:16:1", + "src": "7217:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 906, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7199:4:1", + "memberLocation": "7234:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 624, - "src": "7182:21:1", + "src": "7217:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" } }, - "id": 907, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, @@ -9074,7 +9111,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7182:23:1", + "src": "7217:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -9082,12 +9119,12 @@ } }, { - "id": 908, + "id": 910, "name": "baseTokenPriceFeed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "7224:18:1", + "referencedDeclaration": 813, + "src": "7259:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9096,12 +9133,12 @@ { "arguments": [ { - "id": 911, + "id": 913, "name": "baseTokenPriceFeed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "7272:18:1", + "referencedDeclaration": 813, + "src": "7307:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9116,33 +9153,33 @@ } ], "expression": { - "id": 909, + "id": 911, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7257:5:1", + "referencedDeclaration": 794, + "src": "7292:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 910, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7263:8:1", + "memberLocation": "7298:8:1", "memberName": "getPrice", "nodeType": "MemberAccess", "referencedDeclaration": 367, - "src": "7257:14:1", + "src": "7292:14:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 912, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -9151,7 +9188,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7257:34:1", + "src": "7292:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9163,12 +9200,12 @@ { "arguments": [ { - "id": 919, + "id": 921, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7350:5:1", + "referencedDeclaration": 794, + "src": "7385:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -9182,26 +9219,26 @@ "typeString": "contract Comet" } ], - "id": 918, + "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7342:7:1", + "src": "7377:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 917, + "id": 919, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7342:7:1", + "src": "7377:7:1", "typeDescriptions": {} } }, - "id": 920, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -9210,7 +9247,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7342:14:1", + "src": "7377:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9228,12 +9265,12 @@ "expression": { "arguments": [ { - "id": 914, + "id": 916, "name": "baseToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "7321:9:1", + "referencedDeclaration": 807, + "src": "7356:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9247,18 +9284,18 @@ "typeString": "address" } ], - "id": 913, + "id": 915, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7315:5:1", + "src": "7350:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 915, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -9267,29 +9304,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7315:16:1", + "src": "7350:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 916, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7332:9:1", + "memberLocation": "7367:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 614, - "src": "7315:26:1", + "src": "7350:26:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 921, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -9298,7 +9335,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7315:42:1", + "src": "7350:42:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9341,32 +9378,32 @@ "typeString": "uint256" } ], - "id": 890, + "id": 892, "name": "BaseAsset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 656, - "src": "7016:9:1", + "src": "7051:9:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", "typeString": "type(struct CometQuery.BaseAsset storage pointer)" } }, - "id": 922, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "7034:9:1", - "7062:6:1", - "7103:8:1", - "7148:9:1", - "7176:4:1", - "7213:9:1", - "7250:5:1", - "7299:14:1" + "7069:9:1", + "7097:6:1", + "7138:8:1", + "7183:9:1", + "7211:4:1", + "7248:9:1", + "7285:5:1", + "7334:14:1" ], "names": [ "baseAsset", @@ -9379,7 +9416,7 @@ "balanceOfComet" ], "nodeType": "FunctionCall", - "src": "7016:348:1", + "src": "7051:348:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", @@ -9387,22 +9424,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6987:377:1" + "src": "7022:377:1" }, { "assignments": [ - 928 + 930 ], "declarations": [ { "constant": false, - "id": 928, + "id": 930, "mutability": "mutable", "name": "tokens", - "nameLocation": "7396:6:1", + "nameLocation": "7431:6:1", "nodeType": "VariableDeclaration", - "scope": 978, - "src": "7371:31:1", + "scope": 980, + "src": "7406:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9411,28 +9448,28 @@ }, "typeName": { "baseType": { - "id": 926, + "id": 928, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 925, + "id": 927, "name": "CollateralAsset", "nameLocations": [ - "7371:15:1" + "7406:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "7371:15:1" + "src": "7406:15:1" }, "referencedDeclaration": 702, - "src": "7371:15:1", + "src": "7406:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" } }, - "id": 927, + "id": 929, "nodeType": "ArrayTypeName", - "src": "7371:17:1", + "src": "7406:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAsset[]" @@ -9441,16 +9478,16 @@ "visibility": "internal" } ], - "id": 935, + "id": 937, "initialValue": { "arguments": [ { - "id": 933, + "id": 935, "name": "numAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "7427:9:1", + "referencedDeclaration": 801, + "src": "7462:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9464,48 +9501,48 @@ "typeString": "uint256" } ], - "id": 932, + "id": 934, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7405:21:1", + "src": "7440:21:1", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" }, "typeName": { "baseType": { - "id": 930, + "id": 932, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 929, + "id": 931, "name": "CollateralAsset", "nameLocations": [ - "7409:15:1" + "7444:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "7409:15:1" + "src": "7444:15:1" }, "referencedDeclaration": 702, - "src": "7409:15:1", + "src": "7444:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" } }, - "id": 931, + "id": 933, "nodeType": "ArrayTypeName", - "src": "7409:17:1", + "src": "7444:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAsset[]" } } }, - "id": 934, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -9514,7 +9551,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7405:32:1", + "src": "7440:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", @@ -9522,42 +9559,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7371:66:1" + "src": "7406:66:1" }, { "body": { - "id": 955, + "id": 957, "nodeType": "Block", - "src": "7481:51:1", + "src": "7516:51:1", "statements": [ { "expression": { - "id": 953, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 946, + "id": 948, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7489:6:1", + "referencedDeclaration": 930, + "src": "7524:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 948, + "id": 950, "indexExpression": { - "id": 947, + "id": 949, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7496:1:1", + "referencedDeclaration": 939, + "src": "7531:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9568,7 +9605,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7489:9:1", + "src": "7524:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" @@ -9579,24 +9616,24 @@ "rightHandSide": { "arguments": [ { - "id": 950, + "id": 952, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "7516:5:1", + "referencedDeclaration": 794, + "src": "7551:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, { - "id": 951, + "id": 953, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7523:1:1", + "referencedDeclaration": 939, + "src": "7558:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9614,18 +9651,18 @@ "typeString": "uint8" } ], - "id": 949, + "id": 951, "name": "collateralInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "7501:14:1", + "referencedDeclaration": 1207, + "src": "7536:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" } }, - "id": 952, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -9634,22 +9671,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7501:24:1", + "src": "7536:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "src": "7489:36:1", + "src": "7524:36:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 954, + "id": 956, "nodeType": "ExpressionStatement", - "src": "7489:36:1" + "src": "7524:36:1" } ] }, @@ -9658,18 +9695,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 942, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 940, + "id": 942, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7461:1:1", + "referencedDeclaration": 939, + "src": "7496:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9678,38 +9715,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 941, + "id": 943, "name": "numAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "7465:9:1", + "referencedDeclaration": 801, + "src": "7500:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7461:13:1", + "src": "7496:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 956, + "id": 958, "initializationExpression": { "assignments": [ - 937 + 939 ], "declarations": [ { "constant": false, - "id": 937, + "id": 939, "mutability": "mutable", "name": "i", - "nameLocation": "7454:1:1", + "nameLocation": "7489:1:1", "nodeType": "VariableDeclaration", - "scope": 956, - "src": "7448:7:1", + "scope": 958, + "src": "7483:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9717,10 +9754,10 @@ "typeString": "uint8" }, "typeName": { - "id": 936, + "id": 938, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7448:5:1", + "src": "7483:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9729,17 +9766,17 @@ "visibility": "internal" } ], - "id": 939, + "id": 941, "initialValue": { "hexValue": "30", - "id": 938, + "id": 940, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7458:1:1", + "src": "7493:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9747,11 +9784,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7448:11:1" + "src": "7483:11:1" }, "loopExpression": { "expression": { - "id": 944, + "id": 946, "isConstant": false, "isLValue": false, "isPure": false, @@ -9759,14 +9796,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7476:3:1", + "src": "7511:3:1", "subExpression": { - "id": 943, + "id": 945, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "7476:1:1", + "referencedDeclaration": 939, + "src": "7511:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9777,59 +9814,59 @@ "typeString": "uint8" } }, - "id": 945, + "id": 947, "nodeType": "ExpressionStatement", - "src": "7476:3:1" + "src": "7511:3:1" }, "nodeType": "ForStatement", - "src": "7443:89:1" + "src": "7478:89:1" }, { "expression": { "arguments": [ { - "id": 958, + "id": 960, "name": "baseAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "7583:9:1", + "referencedDeclaration": 891, + "src": "7618:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, { - "id": 959, + "id": 961, "name": "baseMinForRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "7621:17:1", + "referencedDeclaration": 843, + "src": "7656:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 960, + "id": 962, "name": "baseTrackingBorrowSpeed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "7673:23:1", + "referencedDeclaration": 837, + "src": "7708:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 961, + "id": 963, "name": "baseTrackingSupplySpeed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 829, - "src": "7731:23:1", + "referencedDeclaration": 831, + "src": "7766:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9840,18 +9877,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 964, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 962, + "id": 964, "name": "borrowRatePerSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "7775:19:1", + "referencedDeclaration": 876, + "src": "7810:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9860,30 +9897,30 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 963, + "id": 965, "name": "SECONDS_PER_YEAR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 639, - "src": "7797:16:1", + "src": "7832:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7775:38:1", + "src": "7810:38:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 965, + "id": 967, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7841:6:1", + "referencedDeclaration": 930, + "src": "7876:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" @@ -9894,18 +9931,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 968, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 966, + "id": 968, "name": "supplyRatePerSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "7866:19:1", + "referencedDeclaration": 883, + "src": "7901:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9914,30 +9951,30 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 967, + "id": 969, "name": "SECONDS_PER_YEAR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 639, - "src": "7888:16:1", + "src": "7923:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7866:38:1", + "src": "7901:38:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 969, + "id": 971, "name": "totalBorrow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "7927:11:1", + "referencedDeclaration": 861, + "src": "7962:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9945,39 +9982,39 @@ }, { "expression": { - "id": 970, + "id": 972, "name": "totalsBasic", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "7970:11:1", + "referencedDeclaration": 870, + "src": "8005:11:1", "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", "typeString": "struct Comet.TotalsBasic memory" } }, - "id": 971, + "id": 973, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "7982:15:1", + "memberLocation": "8017:15:1", "memberName": "totalBorrowBase", "nodeType": "MemberAccess", "referencedDeclaration": 318, - "src": "7970:27:1", + "src": "8005:27:1", "typeDescriptions": { "typeIdentifier": "t_uint104", "typeString": "uint104" } }, { - "id": 972, + "id": 974, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 853, - "src": "8020:11:1", + "referencedDeclaration": 855, + "src": "8055:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9985,39 +10022,39 @@ }, { "expression": { - "id": 973, + "id": 975, "name": "totalsBasic", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 868, - "src": "8063:11:1", + "referencedDeclaration": 870, + "src": "8098:11:1", "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", "typeString": "struct Comet.TotalsBasic memory" } }, - "id": 974, + "id": 976, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8075:15:1", + "memberLocation": "8110:15:1", "memberName": "totalSupplyBase", "nodeType": "MemberAccess", "referencedDeclaration": 316, - "src": "8063:27:1", + "src": "8098:27:1", "typeDescriptions": { "typeIdentifier": "t_uint104", "typeString": "uint104" } }, { - "id": 975, + "id": 977, "name": "trackingIndexScale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "8120:18:1", + "referencedDeclaration": 825, + "src": "8155:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10075,36 +10112,36 @@ "typeString": "uint256" } ], - "id": 957, + "id": 959, "name": "CometState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 759, - "src": "7551:10:1", + "src": "7586:10:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", "typeString": "type(struct CometQuery.CometState storage pointer)" } }, - "id": 976, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "7572:9:1", - "7602:17:1", - "7648:23:1", - "7706:23:1", - "7764:9:1", - "7823:16:1", - "7857:7:1", - "7914:11:1", - "7948:20:1", - "8007:11:1", - "8041:20:1", - "8100:18:1" + "7607:9:1", + "7637:17:1", + "7683:23:1", + "7741:23:1", + "7799:9:1", + "7858:16:1", + "7892:7:1", + "7949:11:1", + "7983:20:1", + "8042:11:1", + "8076:20:1", + "8135:18:1" ], "names": [ "baseAsset", @@ -10121,17 +10158,17 @@ "trackingIndexScale" ], "nodeType": "FunctionCall", - "src": "7551:596:1", + "src": "7586:596:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "functionReturnParameters": 797, - "id": 977, + "functionReturnParameters": 799, + "id": 979, "nodeType": "Return", - "src": "7538:609:1" + "src": "7573:609:1" } ] }, @@ -10140,20 +10177,20 @@ "kind": "function", "modifiers": [], "name": "query", - "nameLocation": "6154:5:1", + "nameLocation": "6189:5:1", "parameters": { - "id": 793, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 792, + "id": 794, "mutability": "mutable", "name": "comet", - "nameLocation": "6166:5:1", + "nameLocation": "6201:5:1", "nodeType": "VariableDeclaration", - "scope": 979, - "src": "6160:11:1", + "scope": 981, + "src": "6195:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10161,20 +10198,20 @@ "typeString": "contract Comet" }, "typeName": { - "id": 791, + "id": 793, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 790, + "id": 792, "name": "Comet", "nameLocations": [ - "6160:5:1" + "6195:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "6160:5:1" + "src": "6195:5:1" }, "referencedDeclaration": 598, - "src": "6160:5:1", + "src": "6195:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10183,21 +10220,21 @@ "visibility": "internal" } ], - "src": "6159:13:1" + "src": "6194:13:1" }, "returnParameters": { - "id": 797, + "id": 799, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 796, + "id": 798, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 979, - "src": "6194:17:1", + "scope": 981, + "src": "6229:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10205,20 +10242,20 @@ "typeString": "struct CometQuery.CometState" }, "typeName": { - "id": 795, + "id": 797, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 794, + "id": 796, "name": "CometState", "nameLocations": [ - "6194:10:1" + "6229:10:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 759, - "src": "6194:10:1" + "src": "6229:10:1" }, "referencedDeclaration": 759, - "src": "6194:10:1", + "src": "6229:10:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", "typeString": "struct CometQuery.CometState" @@ -10227,36 +10264,36 @@ "visibility": "internal" } ], - "src": "6193:19:1" + "src": "6228:19:1" }, - "scope": 1268, + "scope": 1272, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 1138, + "id": 1142, "nodeType": "FunctionDefinition", - "src": "8156:2025:1", + "src": "8191:2076:1", "body": { - "id": 1137, + "id": 1141, "nodeType": "Block", - "src": "8316:1865:1", + "src": "8351:1916:1", "statements": [ { "assignments": [ - 994 + 996 ], "declarations": [ { "constant": false, - "id": 994, + "id": 996, "mutability": "mutable", "name": "response", - "nameLocation": "8340:8:1", + "nameLocation": "8375:8:1", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8322:26:1", + "scope": 1141, + "src": "8357:26:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10264,20 +10301,20 @@ "typeString": "struct CometQuery.CometState" }, "typeName": { - "id": 993, + "id": 995, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 992, + "id": 994, "name": "CometState", "nameLocations": [ - "8322:10:1" + "8357:10:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 759, - "src": "8322:10:1" + "src": "8357:10:1" }, "referencedDeclaration": 759, - "src": "8322:10:1", + "src": "8357:10:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", "typeString": "struct CometQuery.CometState" @@ -10286,16 +10323,16 @@ "visibility": "internal" } ], - "id": 998, + "id": 1000, "initialValue": { "arguments": [ { - "id": 996, + "id": 998, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8357:5:1", + "referencedDeclaration": 984, + "src": "8392:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10309,18 +10346,18 @@ "typeString": "contract Comet" } ], - "id": 995, + "id": 997, "name": "query", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "8351:5:1", + "referencedDeclaration": 981, + "src": "8386:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" } }, - "id": 997, + "id": 999, "isConstant": false, "isLValue": false, "isPure": false, @@ -10329,7 +10366,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8351:12:1", + "src": "8386:12:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", @@ -10337,22 +10374,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8322:41:1" + "src": "8357:41:1" }, { "assignments": [ - 1000 + 1002 ], "declarations": [ { "constant": false, - "id": 1000, + "id": 1002, "mutability": "mutable", "name": "baseAssetSupplyBalance", - "nameLocation": "8375:22:1", + "nameLocation": "8410:22:1", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8370:27:1", + "scope": 1141, + "src": "8405:27:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10360,10 +10397,10 @@ "typeString": "uint256" }, "typeName": { - "id": 999, + "id": 1001, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8370:4:1", + "src": "8405:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10372,16 +10409,16 @@ "visibility": "internal" } ], - "id": 1005, + "id": 1007, "initialValue": { "arguments": [ { - "id": 1003, + "id": 1005, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8416:7:1", + "referencedDeclaration": 986, + "src": "8451:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10396,33 +10433,33 @@ } ], "expression": { - "id": 1001, + "id": 1003, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8400:5:1", + "referencedDeclaration": 984, + "src": "8435:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1002, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8406:9:1", + "memberLocation": "8441:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 398, - "src": "8400:15:1", + "src": "8435:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1004, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, @@ -10431,7 +10468,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8400:24:1", + "src": "8435:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10439,22 +10476,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8370:54:1" + "src": "8405:54:1" }, { "assignments": [ - 1007 + 1009 ], "declarations": [ { "constant": false, - "id": 1007, + "id": 1009, "mutability": "mutable", "name": "baseAssetBorrowBalance", - "nameLocation": "8435:22:1", + "nameLocation": "8470:22:1", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8430:27:1", + "scope": 1141, + "src": "8465:27:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10462,10 +10499,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1006, + "id": 1008, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8430:4:1", + "src": "8465:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10474,16 +10511,16 @@ "visibility": "internal" } ], - "id": 1012, + "id": 1014, "initialValue": { "arguments": [ { - "id": 1010, + "id": 1012, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8482:7:1", + "referencedDeclaration": 986, + "src": "8517:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10498,33 +10535,33 @@ } ], "expression": { - "id": 1008, + "id": 1010, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8460:5:1", + "referencedDeclaration": 984, + "src": "8495:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1009, + "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8466:15:1", + "memberLocation": "8501:15:1", "memberName": "borrowBalanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 405, - "src": "8460:21:1", + "src": "8495:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1011, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -10533,7 +10570,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8460:30:1", + "src": "8495:30:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10541,22 +10578,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8430:60:1" + "src": "8465:60:1" }, { "assignments": [ - 1015 + 1017 ], "declarations": [ { "constant": false, - "id": 1015, + "id": 1017, "mutability": "mutable", "name": "baseAsset", - "nameLocation": "8530:9:1", + "nameLocation": "8565:9:1", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "8497:42:1", + "scope": 1141, + "src": "8532:42:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10564,20 +10601,20 @@ "typeString": "struct CometQuery.BaseAssetWithAccountState" }, "typeName": { - "id": 1014, + "id": 1016, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1013, + "id": 1015, "name": "BaseAssetWithAccountState", "nameLocations": [ - "8497:25:1" + "8532:25:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 679, - "src": "8497:25:1" + "src": "8532:25:1" }, "referencedDeclaration": 679, - "src": "8497:25:1", + "src": "8532:25:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", "typeString": "struct CometQuery.BaseAssetWithAccountState" @@ -10586,48 +10623,48 @@ "visibility": "internal" } ], - "id": 1065, + "id": 1067, "initialValue": { "arguments": [ { "expression": { "expression": { - "id": 1017, + "id": 1019, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8587:8:1", + "referencedDeclaration": 996, + "src": "8622:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1018, + "id": 1020, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8596:9:1", + "memberLocation": "8631:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8587:18:1", + "src": "8622:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1019, + "id": 1021, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8606:9:1", + "memberLocation": "8641:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 641, - "src": "8587:28:1", + "src": "8622:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10636,12 +10673,12 @@ { "arguments": [ { - "id": 1026, + "id": 1028, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "8680:7:1", + "referencedDeclaration": 986, + "src": "8715:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10650,12 +10687,12 @@ { "arguments": [ { - "id": 1029, + "id": 1031, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "8697:5:1", + "referencedDeclaration": 984, + "src": "8732:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10669,26 +10706,26 @@ "typeString": "contract Comet" } ], - "id": 1028, + "id": 1030, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8689:7:1", + "src": "8724:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1027, + "id": 1029, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8689:7:1", + "src": "8724:7:1", "typeDescriptions": {} } }, - "id": 1030, + "id": 1032, "isConstant": false, "isLValue": false, "isPure": false, @@ -10697,7 +10734,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8689:14:1", + "src": "8724:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10721,42 +10758,42 @@ { "expression": { "expression": { - "id": 1021, + "id": 1023, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8640:8:1", + "referencedDeclaration": 996, + "src": "8675:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1022, + "id": 1024, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8649:9:1", + "memberLocation": "8684:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8640:18:1", + "src": "8675:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1023, + "id": 1025, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8659:9:1", + "memberLocation": "8694:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 641, - "src": "8640:28:1", + "src": "8675:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10770,18 +10807,18 @@ "typeString": "address" } ], - "id": 1020, + "id": 1022, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "8634:5:1", + "src": "8669:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1024, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -10790,29 +10827,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8634:35:1", + "src": "8669:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1025, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8670:9:1", + "memberLocation": "8705:9:1", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 607, - "src": "8634:45:1", + "src": "8669:45:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1031, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, @@ -10821,7 +10858,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8634:70:1", + "src": "8669:70:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10833,18 +10870,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1034, + "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1032, + "id": 1034, "name": "baseAssetSupplyBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "8721:22:1", + "referencedDeclaration": 1002, + "src": "8756:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10853,18 +10890,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1033, + "id": 1035, "name": "baseAssetBorrowBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "8746:22:1", + "referencedDeclaration": 1009, + "src": "8781:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8721:47:1", + "src": "8756:47:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10873,42 +10910,42 @@ { "expression": { "expression": { - "id": 1035, + "id": 1037, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8784:8:1", + "referencedDeclaration": 996, + "src": "8819:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1036, + "id": 1038, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8793:9:1", + "memberLocation": "8828:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8784:18:1", + "src": "8819:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1037, + "id": 1039, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8803:6:1", + "memberLocation": "8838:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 655, - "src": "8784:25:1", + "src": "8819:25:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -10917,42 +10954,42 @@ { "expression": { "expression": { - "id": 1038, + "id": 1040, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8827:8:1", + "referencedDeclaration": 996, + "src": "8862:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1039, + "id": 1041, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8836:9:1", + "memberLocation": "8871:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8827:18:1", + "src": "8862:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1040, + "id": 1042, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8846:8:1", + "memberLocation": "8881:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 645, - "src": "8827:27:1", + "src": "8862:27:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10961,42 +10998,42 @@ { "expression": { "expression": { - "id": 1041, + "id": 1043, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8873:8:1", + "referencedDeclaration": 996, + "src": "8908:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1042, + "id": 1044, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8882:9:1", + "memberLocation": "8917:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8873:18:1", + "src": "8908:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1043, + "id": 1045, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8892:9:1", + "memberLocation": "8927:9:1", "memberName": "minBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 647, - "src": "8873:28:1", + "src": "8908:28:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11005,42 +11042,42 @@ { "expression": { "expression": { - "id": 1044, + "id": 1046, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8915:8:1", + "referencedDeclaration": 996, + "src": "8950:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1045, + "id": 1047, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8924:9:1", + "memberLocation": "8959:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8915:18:1", + "src": "8950:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1046, + "id": 1048, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8934:4:1", + "memberLocation": "8969:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 649, - "src": "8915:23:1", + "src": "8950:23:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -11049,42 +11086,42 @@ { "expression": { "expression": { - "id": 1047, + "id": 1049, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8957:8:1", + "referencedDeclaration": 996, + "src": "8992:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1048, + "id": 1050, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8966:9:1", + "memberLocation": "9001:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8957:18:1", + "src": "8992:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1049, + "id": 1051, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8976:9:1", + "memberLocation": "9011:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 651, - "src": "8957:28:1", + "src": "8992:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11093,42 +11130,42 @@ { "expression": { "expression": { - "id": 1050, + "id": 1052, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9000:8:1", + "referencedDeclaration": 996, + "src": "9035:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1051, + "id": 1053, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9009:9:1", + "memberLocation": "9044:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "9000:18:1", + "src": "9035:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1052, + "id": 1054, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9019:5:1", + "memberLocation": "9054:5:1", "memberName": "price", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "9000:24:1", + "src": "9035:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11137,42 +11174,42 @@ { "expression": { "expression": { - "id": 1053, + "id": 1055, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9048:8:1", + "referencedDeclaration": 996, + "src": "9083:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1054, + "id": 1056, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9057:9:1", + "memberLocation": "9092:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "9048:18:1", + "src": "9083:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1055, + "id": 1057, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9067:14:1", + "memberLocation": "9102:14:1", "memberName": "balanceOfComet", "nodeType": "MemberAccess", "referencedDeclaration": 643, - "src": "9048:33:1", + "src": "9083:33:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11181,12 +11218,12 @@ { "arguments": [ { - "id": 1062, + "id": 1064, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9150:7:1", + "referencedDeclaration": 986, + "src": "9185:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11205,42 +11242,42 @@ { "expression": { "expression": { - "id": 1057, + "id": 1059, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9110:8:1", + "referencedDeclaration": 996, + "src": "9145:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1058, + "id": 1060, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9119:9:1", + "memberLocation": "9154:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "9110:18:1", + "src": "9145:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1059, + "id": 1061, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9129:9:1", + "memberLocation": "9164:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 641, - "src": "9110:28:1", + "src": "9145:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11254,18 +11291,18 @@ "typeString": "address" } ], - "id": 1056, + "id": 1058, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "9104:5:1", + "src": "9139:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1060, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": false, @@ -11274,29 +11311,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9104:35:1", + "src": "9139:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1061, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9140:9:1", + "memberLocation": "9175:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 614, - "src": "9104:45:1", + "src": "9139:45:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1063, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, @@ -11305,7 +11342,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9104:54:1", + "src": "9139:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11360,35 +11397,35 @@ "typeString": "uint256" } ], - "id": 1016, + "id": 1018, "name": "BaseAssetWithAccountState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 679, - "src": "8542:25:1", + "src": "8577:25:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" } }, - "id": 1064, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "8576:9:1", - "8623:9:1", - "8712:7:1", - "8776:6:1", - "8817:8:1", - "8862:9:1", - "8909:4:1", - "8946:9:1", - "8993:5:1", - "9032:14:1", - "9089:13:1" + "8611:9:1", + "8658:9:1", + "8747:7:1", + "8811:6:1", + "8852:8:1", + "8897:9:1", + "8944:4:1", + "8981:9:1", + "9028:5:1", + "9067:14:1", + "9124:13:1" ], "names": [ "baseAsset", @@ -11404,7 +11441,7 @@ "walletBalance" ], "nodeType": "FunctionCall", - "src": "8542:623:1", + "src": "8577:623:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", @@ -11412,22 +11449,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8497:668:1" + "src": "8532:668:1" }, { "assignments": [ - 1070 + 1072 ], "declarations": [ { "constant": false, - "id": 1070, + "id": 1072, "mutability": "mutable", "name": "tokens", - "nameLocation": "9213:6:1", + "nameLocation": "9248:6:1", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "9172:47:1", + "scope": 1141, + "src": "9207:47:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11436,28 +11473,28 @@ }, "typeName": { "baseType": { - "id": 1068, + "id": 1070, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1067, + "id": 1069, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "9172:31:1" + "9207:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "9172:31:1" + "src": "9207:31:1" }, "referencedDeclaration": 731, - "src": "9172:31:1", + "src": "9207:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" } }, - "id": 1069, + "id": 1071, "nodeType": "ArrayTypeName", - "src": "9172:33:1", + "src": "9207:33:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" @@ -11466,47 +11503,47 @@ "visibility": "internal" } ], - "id": 1079, + "id": 1081, "initialValue": { "arguments": [ { "expression": { "expression": { - "id": 1075, + "id": 1077, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9267:8:1", + "referencedDeclaration": 996, + "src": "9302:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1076, + "id": 1078, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9276:16:1", + "memberLocation": "9311:16:1", "memberName": "collateralAssets", "nodeType": "MemberAccess", "referencedDeclaration": 746, - "src": "9267:25:1", + "src": "9302:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 1077, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9293:6:1", + "memberLocation": "9328:6:1", "memberName": "length", "nodeType": "MemberAccess", - "src": "9267:32:1", + "src": "9302:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11520,48 +11557,48 @@ "typeString": "uint256" } ], - "id": 1074, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "9222:37:1", + "src": "9257:37:1", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" }, "typeName": { "baseType": { - "id": 1072, + "id": 1074, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1071, + "id": 1073, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "9226:31:1" + "9261:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "9226:31:1" + "src": "9261:31:1" }, "referencedDeclaration": 731, - "src": "9226:31:1", + "src": "9261:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" } }, - "id": 1073, + "id": 1075, "nodeType": "ArrayTypeName", - "src": "9226:33:1", + "src": "9261:33:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" } } }, - "id": 1078, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, @@ -11570,7 +11607,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9222:83:1", + "src": "9257:83:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", @@ -11578,42 +11615,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9172:133:1" + "src": "9207:133:1" }, { "body": { - "id": 1105, + "id": 1107, "nodeType": "Block", - "src": "9372:98:1", + "src": "9407:98:1", "statements": [ { "expression": { - "id": 1103, + "id": 1105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1092, + "id": 1094, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "9380:6:1", + "referencedDeclaration": 1072, + "src": "9415:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" } }, - "id": 1094, + "id": 1096, "indexExpression": { - "id": 1093, + "id": 1095, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9387:1:1", + "referencedDeclaration": 1083, + "src": "9422:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11624,7 +11661,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9380:9:1", + "src": "9415:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" @@ -11635,12 +11672,12 @@ "rightHandSide": { "arguments": [ { - "id": 1096, + "id": 1098, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "9418:5:1", + "referencedDeclaration": 984, + "src": "9453:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -11649,40 +11686,40 @@ { "baseExpression": { "expression": { - "id": 1097, + "id": 1099, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9425:8:1", + "referencedDeclaration": 996, + "src": "9460:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1098, + "id": 1100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9434:16:1", + "memberLocation": "9469:16:1", "memberName": "collateralAssets", "nodeType": "MemberAccess", "referencedDeclaration": 746, - "src": "9425:25:1", + "src": "9460:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 1100, + "id": 1102, "indexExpression": { - "id": 1099, + "id": 1101, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9451:1:1", + "referencedDeclaration": 1083, + "src": "9486:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11693,19 +11730,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9425:28:1", + "src": "9460:28:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, { - "id": 1101, + "id": 1103, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9455:7:1", + "referencedDeclaration": 986, + "src": "9490:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11727,18 +11764,18 @@ "typeString": "address payable" } ], - "id": 1095, + "id": 1097, "name": "collateralInfoWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1267, - "src": "9392:25:1", + "referencedDeclaration": 1271, + "src": "9427:25:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" } }, - "id": 1102, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": false, @@ -11747,22 +11784,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9392:71:1", + "src": "9427:71:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" } }, - "src": "9380:83:1", + "src": "9415:83:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" } }, - "id": 1104, + "id": 1106, "nodeType": "ExpressionStatement", - "src": "9380:83:1" + "src": "9415:83:1" } ] }, @@ -11771,18 +11808,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1088, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1084, + "id": 1086, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9329:1:1", + "referencedDeclaration": 1083, + "src": "9364:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11793,67 +11830,67 @@ "rightExpression": { "expression": { "expression": { - "id": 1085, + "id": 1087, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9333:8:1", + "referencedDeclaration": 996, + "src": "9368:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1086, + "id": 1088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9342:16:1", + "memberLocation": "9377:16:1", "memberName": "collateralAssets", "nodeType": "MemberAccess", "referencedDeclaration": 746, - "src": "9333:25:1", + "src": "9368:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 1087, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9359:6:1", + "memberLocation": "9394:6:1", "memberName": "length", "nodeType": "MemberAccess", - "src": "9333:32:1", + "src": "9368:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9329:36:1", + "src": "9364:36:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1106, + "id": 1108, "initializationExpression": { "assignments": [ - 1081 + 1083 ], "declarations": [ { "constant": false, - "id": 1081, + "id": 1083, "mutability": "mutable", "name": "i", - "nameLocation": "9322:1:1", + "nameLocation": "9357:1:1", "nodeType": "VariableDeclaration", - "scope": 1106, - "src": "9316:7:1", + "scope": 1108, + "src": "9351:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11861,10 +11898,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1080, + "id": 1082, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "9316:5:1", + "src": "9351:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11873,17 +11910,17 @@ "visibility": "internal" } ], - "id": 1083, + "id": 1085, "initialValue": { "hexValue": "30", - "id": 1082, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9326:1:1", + "src": "9361:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11891,11 +11928,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9316:11:1" + "src": "9351:11:1" }, "loopExpression": { "expression": { - "id": 1090, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, @@ -11903,14 +11940,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9367:3:1", + "src": "9402:3:1", "subExpression": { - "id": 1089, + "id": 1091, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "9367:1:1", + "referencedDeclaration": 1083, + "src": "9402:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11921,23 +11958,23 @@ "typeString": "uint8" } }, - "id": 1091, + "id": 1093, "nodeType": "ExpressionStatement", - "src": "9367:3:1" + "src": "9402:3:1" }, "nodeType": "ForStatement", - "src": "9311:159:1" + "src": "9346:159:1" }, { "expression": { "arguments": [ { - "id": 1108, + "id": 1110, "name": "baseAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "9537:9:1", + "referencedDeclaration": 1017, + "src": "9572:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", "typeString": "struct CometQuery.BaseAssetWithAccountState memory" @@ -11945,27 +11982,27 @@ }, { "expression": { - "id": 1109, + "id": 1111, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9575:8:1", + "referencedDeclaration": 996, + "src": "9610:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1110, + "id": 1112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9584:17:1", + "memberLocation": "9619:17:1", "memberName": "baseMinForRewards", "nodeType": "MemberAccess", "referencedDeclaration": 736, - "src": "9575:26:1", + "src": "9610:26:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11973,27 +12010,27 @@ }, { "expression": { - "id": 1111, + "id": 1113, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9636:8:1", + "referencedDeclaration": 996, + "src": "9671:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1112, + "id": 1114, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9645:23:1", + "memberLocation": "9680:23:1", "memberName": "baseTrackingBorrowSpeed", "nodeType": "MemberAccess", "referencedDeclaration": 738, - "src": "9636:32:1", + "src": "9671:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12001,27 +12038,27 @@ }, { "expression": { - "id": 1113, + "id": 1115, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9703:8:1", + "referencedDeclaration": 996, + "src": "9738:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1114, + "id": 1116, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9712:23:1", + "memberLocation": "9747:23:1", "memberName": "baseTrackingSupplySpeed", "nodeType": "MemberAccess", "referencedDeclaration": 740, - "src": "9703:32:1", + "src": "9738:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12029,27 +12066,27 @@ }, { "expression": { - "id": 1115, + "id": 1117, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9756:8:1", + "referencedDeclaration": 996, + "src": "9791:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1116, + "id": 1118, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9765:9:1", + "memberLocation": "9800:9:1", "memberName": "borrowAPR", "nodeType": "MemberAccess", "referencedDeclaration": 742, - "src": "9756:18:1", + "src": "9791:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12058,24 +12095,24 @@ { "arguments": [ { - "id": 1119, + "id": 1121, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 984, - "src": "9817:7:1", + "referencedDeclaration": 986, + "src": "9852:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1120, + "id": 1122, "name": "bulker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "9826:6:1", + "referencedDeclaration": 988, + "src": "9861:6:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -12094,33 +12131,33 @@ } ], "expression": { - "id": 1117, + "id": 1119, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 982, - "src": "9801:5:1", + "referencedDeclaration": 984, + "src": "9836:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1118, + "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9807:9:1", + "memberLocation": "9842:9:1", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 597, - "src": "9801:15:1", + "src": "9836:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1121, + "id": 1123, "isConstant": false, "isLValue": false, "isPure": false, @@ -12129,7 +12166,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9801:32:1", + "src": "9836:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12137,12 +12174,12 @@ } }, { - "id": 1122, + "id": 1124, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1070, - "src": "9861:6:1", + "referencedDeclaration": 1072, + "src": "9896:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" @@ -12150,27 +12187,27 @@ }, { "expression": { - "id": 1123, + "id": 1125, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9886:8:1", + "referencedDeclaration": 996, + "src": "9921:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1124, + "id": 1126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9895:7:1", + "memberLocation": "9930:7:1", "memberName": "earnAPR", "nodeType": "MemberAccess", "referencedDeclaration": 748, - "src": "9886:16:1", + "src": "9921:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12178,27 +12215,54 @@ }, { "expression": { - "id": 1125, + "id": 1127, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "9973:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9981:7:1", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "9973:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1129, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9925:8:1", + "referencedDeclaration": 996, + "src": "10011:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1126, + "id": 1130, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9934:11:1", + "memberLocation": "10020:11:1", "memberName": "totalBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 750, - "src": "9925:20:1", + "src": "10011:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12206,27 +12270,27 @@ }, { "expression": { - "id": 1127, + "id": 1131, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "9977:8:1", + "referencedDeclaration": 996, + "src": "10063:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1128, + "id": 1132, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9986:20:1", + "memberLocation": "10072:20:1", "memberName": "totalBorrowPrincipal", "nodeType": "MemberAccess", "referencedDeclaration": 752, - "src": "9977:29:1", + "src": "10063:29:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12234,27 +12298,27 @@ }, { "expression": { - "id": 1129, + "id": 1133, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10029:8:1", + "referencedDeclaration": 996, + "src": "10115:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1130, + "id": 1134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10038:11:1", + "memberLocation": "10124:11:1", "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 754, - "src": "10029:20:1", + "src": "10115:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12262,27 +12326,27 @@ }, { "expression": { - "id": 1131, + "id": 1135, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10081:8:1", + "referencedDeclaration": 996, + "src": "10167:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1132, + "id": 1136, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10090:20:1", + "memberLocation": "10176:20:1", "memberName": "totalSupplyPrincipal", "nodeType": "MemberAccess", "referencedDeclaration": 756, - "src": "10081:29:1", + "src": "10167:29:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12290,27 +12354,27 @@ }, { "expression": { - "id": 1133, + "id": 1137, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "10140:8:1", + "referencedDeclaration": 996, + "src": "10226:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1134, + "id": 1138, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10149:18:1", + "memberLocation": "10235:18:1", "memberName": "trackingIndexScale", "nodeType": "MemberAccess", "referencedDeclaration": 758, - "src": "10140:27:1", + "src": "10226:27:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12367,42 +12431,47 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 1107, + "id": 1109, "name": "CometStateWithAccountState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "9489:26:1", + "referencedDeclaration": 791, + "src": "9524:26:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$789_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$791_storage_ptr_$", "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" } }, - "id": 1135, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "9526:9:1", - "9556:17:1", - "9611:23:1", - "9678:23:1", - "9745:9:1", - "9784:15:1", - "9843:16:1", - "9877:7:1", - "9912:11:1", - "9955:20:1", - "10016:11:1", - "10059:20:1", - "10120:18:1" + "9561:9:1", + "9591:17:1", + "9646:23:1", + "9713:23:1", + "9780:9:1", + "9819:15:1", + "9878:16:1", + "9912:7:1", + "9947:24:1", + "9998:11:1", + "10041:20:1", + "10102:11:1", + "10145:20:1", + "10206:18:1" ], "names": [ "baseAsset", @@ -12413,6 +12482,7 @@ "bulkerAllowance", "collateralAssets", "earnAPR", + "nativeAssetWalletBalance", "totalBorrow", "totalBorrowPrincipal", "totalSupply", @@ -12420,17 +12490,17 @@ "trackingIndexScale" ], "nodeType": "FunctionCall", - "src": "9489:687:1", + "src": "9524:738:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" } }, - "functionReturnParameters": 991, - "id": 1136, + "functionReturnParameters": 993, + "id": 1140, "nodeType": "Return", - "src": "9476:700:1" + "src": "9511:751:1" } ] }, @@ -12439,20 +12509,20 @@ "kind": "function", "modifiers": [], "name": "queryWithAccount", - "nameLocation": "8165:16:1", + "nameLocation": "8200:16:1", "parameters": { - "id": 987, + "id": 989, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 982, + "id": 984, "mutability": "mutable", "name": "comet", - "nameLocation": "8193:5:1", + "nameLocation": "8228:5:1", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8187:11:1", + "scope": 1142, + "src": "8222:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12460,20 +12530,20 @@ "typeString": "contract Comet" }, "typeName": { - "id": 981, + "id": 983, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 980, + "id": 982, "name": "Comet", "nameLocations": [ - "8187:5:1" + "8222:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "8187:5:1" + "src": "8222:5:1" }, "referencedDeclaration": 598, - "src": "8187:5:1", + "src": "8222:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -12483,13 +12553,13 @@ }, { "constant": false, - "id": 984, + "id": 986, "mutability": "mutable", "name": "account", - "nameLocation": "8220:7:1", + "nameLocation": "8255:7:1", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8204:23:1", + "scope": 1142, + "src": "8239:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12497,10 +12567,10 @@ "typeString": "address payable" }, "typeName": { - "id": 983, + "id": 985, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8204:15:1", + "src": "8239:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -12511,13 +12581,13 @@ }, { "constant": false, - "id": 986, + "id": 988, "mutability": "mutable", "name": "bulker", - "nameLocation": "8249:6:1", + "nameLocation": "8284:6:1", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8233:22:1", + "scope": 1142, + "src": "8268:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12525,10 +12595,10 @@ "typeString": "address payable" }, "typeName": { - "id": 985, + "id": 987, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8233:15:1", + "src": "8268:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -12538,80 +12608,80 @@ "visibility": "internal" } ], - "src": "8181:78:1" + "src": "8216:78:1" }, "returnParameters": { - "id": 991, + "id": 993, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 990, + "id": 992, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "8281:33:1", + "scope": 1142, + "src": "8316:33:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" }, "typeName": { - "id": 989, + "id": 991, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 988, + "id": 990, "name": "CometStateWithAccountState", "nameLocations": [ - "8281:26:1" + "8316:26:1" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 789, - "src": "8281:26:1" + "referencedDeclaration": 791, + "src": "8316:26:1" }, - "referencedDeclaration": 789, - "src": "8281:26:1", + "referencedDeclaration": 791, + "src": "8316:26:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" } }, "visibility": "internal" } ], - "src": "8280:35:1" + "src": "8315:35:1" }, - "scope": 1268, + "scope": 1272, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 1203, + "id": 1207, "nodeType": "FunctionDefinition", - "src": "10185:782:1", + "src": "10271:782:1", "body": { - "id": 1202, + "id": 1206, "nodeType": "Block", - "src": "10280:687:1", + "src": "10366:687:1", "statements": [ { "assignments": [ - 1153 + 1157 ], "declarations": [ { "constant": false, - "id": 1153, + "id": 1157, "mutability": "mutable", "name": "assetInfo", - "nameLocation": "10309:9:1", + "nameLocation": "10395:9:1", "nodeType": "VariableDeclaration", - "scope": 1202, - "src": "10286:32:1", + "scope": 1206, + "src": "10372:32:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12619,21 +12689,21 @@ "typeString": "struct Comet.AssetInfo" }, "typeName": { - "id": 1152, + "id": 1156, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1151, + "id": 1155, "name": "Comet.AssetInfo", "nameLocations": [ - "10286:5:1", - "10292:9:1" + "10372:5:1", + "10378:9:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 306, - "src": "10286:15:1" + "src": "10372:15:1" }, "referencedDeclaration": 306, - "src": "10286:15:1", + "src": "10372:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", "typeString": "struct Comet.AssetInfo" @@ -12642,16 +12712,16 @@ "visibility": "internal" } ], - "id": 1158, + "id": 1162, "initialValue": { "arguments": [ { - "id": 1156, + "id": 1160, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "10340:5:1", + "referencedDeclaration": 1147, + "src": "10426:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12666,33 +12736,33 @@ } ], "expression": { - "id": 1154, + "id": 1158, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10321:5:1", + "referencedDeclaration": 1145, + "src": "10407:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1155, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10327:12:1", + "memberLocation": "10413:12:1", "memberName": "getAssetInfo", "nodeType": "MemberAccess", "referencedDeclaration": 340, - "src": "10321:18:1", + "src": "10407:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" } }, - "id": 1157, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, @@ -12701,7 +12771,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10321:25:1", + "src": "10407:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", @@ -12709,34 +12779,34 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10286:60:1" + "src": "10372:60:1" }, { "expression": { "arguments": [ { "expression": { - "id": 1160, + "id": 1164, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10409:9:1", + "referencedDeclaration": 1157, + "src": "10495:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1161, + "id": 1165, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10419:5:1", + "memberLocation": "10505:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10409:15:1", + "src": "10495:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12744,27 +12814,27 @@ }, { "expression": { - "id": 1162, + "id": 1166, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10452:9:1", + "referencedDeclaration": 1157, + "src": "10538:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1163, + "id": 1167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10462:22:1", + "memberLocation": "10548:22:1", "memberName": "borrowCollateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 299, - "src": "10452:32:1", + "src": "10538:32:1", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12778,27 +12848,27 @@ "arguments": [ { "expression": { - "id": 1165, + "id": 1169, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10510:9:1", + "referencedDeclaration": 1157, + "src": "10596:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1166, + "id": 1170, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10520:5:1", + "memberLocation": "10606:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10510:15:1", + "src": "10596:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12812,18 +12882,18 @@ "typeString": "address" } ], - "id": 1164, + "id": 1168, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "10504:5:1", + "src": "10590:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1167, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": false, @@ -12832,29 +12902,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10504:22:1", + "src": "10590:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1168, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10527:8:1", + "memberLocation": "10613:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 619, - "src": "10504:31:1", + "src": "10590:31:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 1169, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, @@ -12863,7 +12933,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10504:33:1", + "src": "10590:33:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12872,27 +12942,27 @@ }, { "expression": { - "id": 1170, + "id": 1174, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10574:9:1", + "referencedDeclaration": 1157, + "src": "10660:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1171, + "id": 1175, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10584:25:1", + "memberLocation": "10670:25:1", "memberName": "liquidateCollateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 301, - "src": "10574:35:1", + "src": "10660:35:1", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12900,27 +12970,27 @@ }, { "expression": { - "id": 1172, + "id": 1176, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10638:9:1", + "referencedDeclaration": 1157, + "src": "10724:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1173, + "id": 1177, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10648:17:1", + "memberLocation": "10734:17:1", "memberName": "liquidationFactor", "nodeType": "MemberAccess", "referencedDeclaration": 303, - "src": "10638:27:1", + "src": "10724:27:1", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12934,27 +13004,27 @@ "arguments": [ { "expression": { - "id": 1175, + "id": 1179, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10687:9:1", + "referencedDeclaration": 1157, + "src": "10773:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1176, + "id": 1180, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10697:5:1", + "memberLocation": "10783:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10687:15:1", + "src": "10773:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12968,18 +13038,18 @@ "typeString": "address" } ], - "id": 1174, + "id": 1178, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "10681:5:1", + "src": "10767:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1177, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -12988,29 +13058,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10681:22:1", + "src": "10767:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1178, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10704:4:1", + "memberLocation": "10790:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 624, - "src": "10681:27:1", + "src": "10767:27:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" } }, - "id": 1179, + "id": 1183, "isConstant": false, "isLValue": false, "isPure": false, @@ -13019,7 +13089,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10681:29:1", + "src": "10767:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -13030,27 +13100,27 @@ "arguments": [ { "expression": { - "id": 1182, + "id": 1186, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10742:9:1", + "referencedDeclaration": 1157, + "src": "10828:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1183, + "id": 1187, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10752:9:1", + "memberLocation": "10838:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 295, - "src": "10742:19:1", + "src": "10828:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13065,33 +13135,33 @@ } ], "expression": { - "id": 1180, + "id": 1184, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10727:5:1", + "referencedDeclaration": 1145, + "src": "10813:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1181, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10733:8:1", + "memberLocation": "10819:8:1", "memberName": "getPrice", "nodeType": "MemberAccess", "referencedDeclaration": 367, - "src": "10727:14:1", + "src": "10813:14:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1184, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -13100,7 +13170,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10727:35:1", + "src": "10813:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13109,27 +13179,27 @@ }, { "expression": { - "id": 1185, + "id": 1189, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10783:9:1", + "referencedDeclaration": 1157, + "src": "10869:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1186, + "id": 1190, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10793:9:1", + "memberLocation": "10879:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 295, - "src": "10783:19:1", + "src": "10869:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13137,27 +13207,27 @@ }, { "expression": { - "id": 1187, + "id": 1191, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10823:9:1", + "referencedDeclaration": 1157, + "src": "10909:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1188, + "id": 1192, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10833:9:1", + "memberLocation": "10919:9:1", "memberName": "supplyCap", "nodeType": "MemberAccess", "referencedDeclaration": 305, - "src": "10823:19:1", + "src": "10909:19:1", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -13171,27 +13241,27 @@ "arguments": [ { "expression": { - "id": 1190, + "id": 1194, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10866:9:1", + "referencedDeclaration": 1157, + "src": "10952:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1191, + "id": 1195, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10876:5:1", + "memberLocation": "10962:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10866:15:1", + "src": "10952:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13205,18 +13275,18 @@ "typeString": "address" } ], - "id": 1189, + "id": 1193, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "10860:5:1", + "src": "10946:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1192, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -13225,29 +13295,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10860:22:1", + "src": "10946:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1193, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10883:6:1", + "memberLocation": "10969:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 629, - "src": "10860:29:1", + "src": "10946:29:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" } }, - "id": 1194, + "id": 1198, "isConstant": false, "isLValue": false, "isPure": false, @@ -13256,7 +13326,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10860:31:1", + "src": "10946:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -13267,27 +13337,27 @@ "arguments": [ { "expression": { - "id": 1197, + "id": 1201, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, - "src": "10937:9:1", + "referencedDeclaration": 1157, + "src": "11023:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1198, + "id": 1202, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10947:5:1", + "memberLocation": "11033:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10937:15:1", + "src": "11023:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13302,33 +13372,33 @@ } ], "expression": { - "id": 1195, + "id": 1199, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "10914:5:1", + "referencedDeclaration": 1145, + "src": "11000:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1196, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10920:16:1", + "memberLocation": "11006:16:1", "memberName": "totalsCollateral", "nodeType": "MemberAccess", "referencedDeclaration": 588, - "src": "10914:22:1", + "src": "11000:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1199, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, @@ -13337,7 +13407,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10914:39:1", + "src": "11000:39:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13392,35 +13462,35 @@ "typeString": "uint256" } ], - "id": 1159, + "id": 1163, "name": "CollateralAsset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 702, - "src": "10366:15:1", + "src": "10452:15:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" } }, - "id": 1200, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "10392:15:1", - "10434:16:1", - "10494:8:1", - "10547:25:1", - "10619:17:1", - "10675:4:1", - "10720:5:1", - "10772:9:1", - "10812:9:1", - "10852:6:1", - "10901:11:1" + "10478:15:1", + "10520:16:1", + "10580:8:1", + "10633:25:1", + "10705:17:1", + "10761:4:1", + "10806:5:1", + "10858:9:1", + "10898:9:1", + "10938:6:1", + "10987:11:1" ], "names": [ "collateralAsset", @@ -13436,17 +13506,17 @@ "totalSupply" ], "nodeType": "FunctionCall", - "src": "10366:596:1", + "src": "10452:596:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "functionReturnParameters": 1148, - "id": 1201, + "functionReturnParameters": 1152, + "id": 1205, "nodeType": "Return", - "src": "10353:609:1" + "src": "10439:609:1" } ] }, @@ -13455,20 +13525,20 @@ "kind": "function", "modifiers": [], "name": "collateralInfo", - "nameLocation": "10194:14:1", + "nameLocation": "10280:14:1", "parameters": { - "id": 1144, + "id": 1148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1141, + "id": 1145, "mutability": "mutable", "name": "comet", - "nameLocation": "10215:5:1", + "nameLocation": "10301:5:1", "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10209:11:1", + "scope": 1207, + "src": "10295:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13476,20 +13546,20 @@ "typeString": "contract Comet" }, "typeName": { - "id": 1140, + "id": 1144, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1139, + "id": 1143, "name": "Comet", "nameLocations": [ - "10209:5:1" + "10295:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "10209:5:1" + "src": "10295:5:1" }, "referencedDeclaration": 598, - "src": "10209:5:1", + "src": "10295:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -13499,13 +13569,13 @@ }, { "constant": false, - "id": 1143, + "id": 1147, "mutability": "mutable", "name": "index", - "nameLocation": "10228:5:1", + "nameLocation": "10314:5:1", "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10222:11:1", + "scope": 1207, + "src": "10308:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13513,10 +13583,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1142, + "id": 1146, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10222:5:1", + "src": "10308:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13525,21 +13595,21 @@ "visibility": "internal" } ], - "src": "10208:26:1" + "src": "10294:26:1" }, "returnParameters": { - "id": 1148, + "id": 1152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1147, + "id": 1151, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "10256:22:1", + "scope": 1207, + "src": "10342:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13547,20 +13617,20 @@ "typeString": "struct CometQuery.CollateralAsset" }, "typeName": { - "id": 1146, + "id": 1150, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1145, + "id": 1149, "name": "CollateralAsset", "nameLocations": [ - "10256:15:1" + "10342:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "10256:15:1" + "src": "10342:15:1" }, "referencedDeclaration": 702, - "src": "10256:15:1", + "src": "10342:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -13569,48 +13639,48 @@ "visibility": "internal" } ], - "src": "10255:24:1" + "src": "10341:24:1" }, - "scope": 1268, + "scope": 1272, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 1267, + "id": 1271, "nodeType": "FunctionDefinition", - "src": "10971:925:1", + "src": "11057:925:1", "body": { - "id": 1266, + "id": 1270, "nodeType": "Block", - "src": "11151:745:1", + "src": "11237:745:1", "statements": [ { "expression": { "arguments": [ { "expression": { - "id": 1218, + "id": 1222, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11229:5:1", + "referencedDeclaration": 1213, + "src": "11315:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1219, + "id": 1223, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11235:15:1", + "memberLocation": "11321:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11229:21:1", + "src": "11315:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13619,12 +13689,12 @@ { "arguments": [ { - "id": 1225, + "id": 1229, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11310:7:1", + "referencedDeclaration": 1215, + "src": "11396:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -13633,12 +13703,12 @@ { "arguments": [ { - "id": 1228, + "id": 1232, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "11327:5:1", + "referencedDeclaration": 1210, + "src": "11413:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -13652,26 +13722,26 @@ "typeString": "contract Comet" } ], - "id": 1227, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11319:7:1", + "src": "11405:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1226, + "id": 1230, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11319:7:1", + "src": "11405:7:1", "typeDescriptions": {} } }, - "id": 1229, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, @@ -13680,7 +13750,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11319:14:1", + "src": "11405:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13703,27 +13773,27 @@ "arguments": [ { "expression": { - "id": 1221, + "id": 1225, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11277:5:1", + "referencedDeclaration": 1213, + "src": "11363:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1222, + "id": 1226, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11283:15:1", + "memberLocation": "11369:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11277:21:1", + "src": "11363:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13737,18 +13807,18 @@ "typeString": "address" } ], - "id": 1220, + "id": 1224, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "11271:5:1", + "src": "11357:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1223, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, @@ -13757,29 +13827,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11271:28:1", + "src": "11357:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1224, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11300:9:1", + "memberLocation": "11386:9:1", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 607, - "src": "11271:38:1", + "src": "11357:38:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1230, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -13788,7 +13858,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11271:63:1", + "src": "11357:63:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13798,12 +13868,12 @@ { "arguments": [ { - "id": 1233, + "id": 1237, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11379:7:1", + "referencedDeclaration": 1215, + "src": "11465:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -13811,27 +13881,27 @@ }, { "expression": { - "id": 1234, + "id": 1238, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11388:5:1", + "referencedDeclaration": 1213, + "src": "11474:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1235, + "id": 1239, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11394:15:1", + "memberLocation": "11480:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11388:21:1", + "src": "11474:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13850,33 +13920,33 @@ } ], "expression": { - "id": 1231, + "id": 1235, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "11353:5:1", + "referencedDeclaration": 1210, + "src": "11439:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1232, + "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11359:19:1", + "memberLocation": "11445:19:1", "memberName": "collateralBalanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 543, - "src": "11353:25:1", + "src": "11439:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", "typeString": "function (address,address) view external returns (uint128)" } }, - "id": 1236, + "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, @@ -13885,7 +13955,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11353:57:1", + "src": "11439:57:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -13894,27 +13964,27 @@ }, { "expression": { - "id": 1237, + "id": 1241, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11438:5:1", + "referencedDeclaration": 1213, + "src": "11524:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1238, + "id": 1242, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11444:16:1", + "memberLocation": "11530:16:1", "memberName": "collateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 683, - "src": "11438:22:1", + "src": "11524:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13922,27 +13992,27 @@ }, { "expression": { - "id": 1239, + "id": 1243, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11480:5:1", + "referencedDeclaration": 1213, + "src": "11566:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1240, + "id": 1244, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11486:8:1", + "memberLocation": "11572:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 685, - "src": "11480:14:1", + "src": "11566:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13950,27 +14020,27 @@ }, { "expression": { - "id": 1241, + "id": 1245, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11531:5:1", + "referencedDeclaration": 1213, + "src": "11617:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1242, + "id": 1246, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11537:25:1", + "memberLocation": "11623:25:1", "memberName": "liquidateCollateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 689, - "src": "11531:31:1", + "src": "11617:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13978,27 +14048,27 @@ }, { "expression": { - "id": 1243, + "id": 1247, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11591:5:1", + "referencedDeclaration": 1213, + "src": "11677:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1244, + "id": 1248, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11597:17:1", + "memberLocation": "11683:17:1", "memberName": "liquidationFactor", "nodeType": "MemberAccess", "referencedDeclaration": 691, - "src": "11591:23:1", + "src": "11677:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14006,27 +14076,27 @@ }, { "expression": { - "id": 1245, + "id": 1249, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11630:5:1", + "referencedDeclaration": 1213, + "src": "11716:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1246, + "id": 1250, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11636:4:1", + "memberLocation": "11722:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 687, - "src": "11630:10:1", + "src": "11716:10:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -14034,27 +14104,27 @@ }, { "expression": { - "id": 1247, + "id": 1251, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11657:5:1", + "referencedDeclaration": 1213, + "src": "11743:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1248, + "id": 1252, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11663:5:1", + "memberLocation": "11749:5:1", "memberName": "price", "nodeType": "MemberAccess", "referencedDeclaration": 693, - "src": "11657:11:1", + "src": "11743:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14062,27 +14132,27 @@ }, { "expression": { - "id": 1249, + "id": 1253, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11689:5:1", + "referencedDeclaration": 1213, + "src": "11775:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1250, + "id": 1254, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11695:9:1", + "memberLocation": "11781:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 695, - "src": "11689:15:1", + "src": "11775:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14090,27 +14160,27 @@ }, { "expression": { - "id": 1251, + "id": 1255, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11725:5:1", + "referencedDeclaration": 1213, + "src": "11811:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1252, + "id": 1256, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11731:9:1", + "memberLocation": "11817:9:1", "memberName": "supplyCap", "nodeType": "MemberAccess", "referencedDeclaration": 697, - "src": "11725:15:1", + "src": "11811:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14118,27 +14188,27 @@ }, { "expression": { - "id": 1253, + "id": 1257, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11758:5:1", + "referencedDeclaration": 1213, + "src": "11844:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1254, + "id": 1258, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11764:6:1", + "memberLocation": "11850:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 699, - "src": "11758:12:1", + "src": "11844:12:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -14146,27 +14216,27 @@ }, { "expression": { - "id": 1255, + "id": 1259, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11793:5:1", + "referencedDeclaration": 1213, + "src": "11879:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1256, + "id": 1260, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11799:11:1", + "memberLocation": "11885:11:1", "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 701, - "src": "11793:17:1", + "src": "11879:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14175,12 +14245,12 @@ { "arguments": [ { - "id": 1262, + "id": 1266, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "11874:7:1", + "referencedDeclaration": 1215, + "src": "11960:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -14198,27 +14268,27 @@ "arguments": [ { "expression": { - "id": 1258, + "id": 1262, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1209, - "src": "11841:5:1", + "referencedDeclaration": 1213, + "src": "11927:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1259, + "id": 1263, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11847:15:1", + "memberLocation": "11933:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11841:21:1", + "src": "11927:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14232,18 +14302,18 @@ "typeString": "address" } ], - "id": 1257, + "id": 1261, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "11835:5:1", + "src": "11921:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1260, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": false, @@ -14252,29 +14322,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11835:28:1", + "src": "11921:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1261, + "id": 1265, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11864:9:1", + "memberLocation": "11950:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 614, - "src": "11835:38:1", + "src": "11921:38:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1263, + "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, @@ -14283,7 +14353,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11835:47:1", + "src": "11921:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14350,38 +14420,38 @@ "typeString": "uint256" } ], - "id": 1217, + "id": 1221, "name": "CollateralAssetWithAccountState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, - "src": "11170:31:1", + "src": "11256:31:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" } }, - "id": 1264, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "11212:15:1", - "11260:9:1", - "11344:7:1", - "11420:16:1", - "11470:8:1", - "11504:25:1", - "11572:17:1", - "11624:4:1", - "11650:5:1", - "11678:9:1", - "11714:9:1", - "11750:6:1", - "11780:11:1", - "11820:13:1" + "11298:15:1", + "11346:9:1", + "11430:7:1", + "11506:16:1", + "11556:8:1", + "11590:25:1", + "11658:17:1", + "11710:4:1", + "11736:5:1", + "11764:9:1", + "11800:9:1", + "11836:6:1", + "11866:11:1", + "11906:13:1" ], "names": [ "collateralAsset", @@ -14400,17 +14470,17 @@ "walletBalance" ], "nodeType": "FunctionCall", - "src": "11170:721:1", + "src": "11256:721:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" } }, - "functionReturnParameters": 1216, - "id": 1265, + "functionReturnParameters": 1220, + "id": 1269, "nodeType": "Return", - "src": "11157:734:1" + "src": "11243:734:1" } ] }, @@ -14419,20 +14489,20 @@ "kind": "function", "modifiers": [], "name": "collateralInfoWithAccount", - "nameLocation": "10980:25:1", + "nameLocation": "11066:25:1", "parameters": { - "id": 1212, + "id": 1216, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1206, + "id": 1210, "mutability": "mutable", "name": "comet", - "nameLocation": "11017:5:1", + "nameLocation": "11103:5:1", "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11011:11:1", + "scope": 1271, + "src": "11097:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14440,20 +14510,20 @@ "typeString": "contract Comet" }, "typeName": { - "id": 1205, + "id": 1209, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1204, + "id": 1208, "name": "Comet", "nameLocations": [ - "11011:5:1" + "11097:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "11011:5:1" + "src": "11097:5:1" }, "referencedDeclaration": 598, - "src": "11011:5:1", + "src": "11097:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -14463,13 +14533,13 @@ }, { "constant": false, - "id": 1209, + "id": 1213, "mutability": "mutable", "name": "asset", - "nameLocation": "11051:5:1", + "nameLocation": "11137:5:1", "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11028:28:1", + "scope": 1271, + "src": "11114:28:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14477,20 +14547,20 @@ "typeString": "struct CometQuery.CollateralAsset" }, "typeName": { - "id": 1208, + "id": 1212, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1207, + "id": 1211, "name": "CollateralAsset", "nameLocations": [ - "11028:15:1" + "11114:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "11028:15:1" + "src": "11114:15:1" }, "referencedDeclaration": 702, - "src": "11028:15:1", + "src": "11114:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -14500,13 +14570,13 @@ }, { "constant": false, - "id": 1211, + "id": 1215, "mutability": "mutable", "name": "account", - "nameLocation": "11078:7:1", + "nameLocation": "11164:7:1", "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11062:23:1", + "scope": 1271, + "src": "11148:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14514,10 +14584,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1210, + "id": 1214, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11062:15:1", + "src": "11148:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -14527,21 +14597,21 @@ "visibility": "internal" } ], - "src": "11005:84:1" + "src": "11091:84:1" }, "returnParameters": { - "id": 1216, + "id": 1220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1215, + "id": 1219, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1267, - "src": "11111:38:1", + "scope": 1271, + "src": "11197:38:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14549,20 +14619,20 @@ "typeString": "struct CometQuery.CollateralAssetWithAccountState" }, "typeName": { - "id": 1214, + "id": 1218, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1213, + "id": 1217, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "11111:31:1" + "11197:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "11111:31:1" + "src": "11197:31:1" }, "referencedDeclaration": 731, - "src": "11111:31:1", + "src": "11197:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" @@ -14571,9 +14641,9 @@ "visibility": "internal" } ], - "src": "11110:40:1" + "src": "11196:40:1" }, - "scope": 1268, + "scope": 1272, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -14586,11 +14656,11 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 1268 + 1272 ], "name": "CometQuery", "nameLocation": "4161:10:1", - "scope": 1269, + "scope": 1273, "usedErrors": [] } ], diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json index a3ac70c..681555d 100644 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json @@ -599,6 +599,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -1009,6 +1014,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -1045,13 +1055,13 @@ } ], "bytecode": { - "object": "0x6080806040523461001657612b79908161001c8239f35b600080fdfe6101a0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b1a57806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610f8e565b611675565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a019061101f565b9260a08201511661024089015260c0810151610260890152015161019f198783030161028088015261101f565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611470565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610f8e565b6024359060ff821682036101e6576102339161021f9161221f565b604051918291602083526020830190611470565b0390f35b346101e6576003196060368201126101e657610251610f8e565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161145c565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113b3565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161145c565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113b3565b6101208401520135610140820152610342610fba565b91612585565b604051918291602083526020830190611044565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610f8e565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd9336906004016113fa565b6103ce610fd0565b916103d7610fe6565b936127df565b6103ea604051809261127d565bf35b346101e65760a03660031901126101e657610405610f8e565b61040d610fa4565b906001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610457610fd0565b61045f610fe6565b60405161046b816112d0565b600081526060602082015260406104806120f4565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0388165afa90811561092157600091610ad8575b506104c1604435600401356115b6565b936104cf6040519586611377565b60046044350135808652601f19906104e6906115b6565b0160005b818110610ac157505060005b604435600401358110610a58575050604051636eb1769f60e11b81526001600160a01b03808516600483015290921660248301525092602084806044810103816001600160a01b0385165afa93841561092157600094610a24575b5061055a6120f4565b5061056481611675565b6040516370a0823160e01b81526001600160a01b0384811660048301526020908290602490829087165afa908115610921576000916109f2575b50604051630dd3126d60e21b81526001600160a01b0385811660048301526020908290602490829088165afa908115610921576000916109c0575b50825151604051636eb1769f60e11b81526001600160a01b038781166004830152868116602483015290911690602081604481855afa9081156109215760009161098e575b50838381031161097857869385519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610944575b506106ac604051806080526112eb565b608051526020608051015203604060805101526060608051015260808051015260a0608051015260c0608051015260e0608051015261010060805101526101206080510152610140608051015260a08101515194610709866115b6565b956107176040519788611377565b808752610726601f19916115b6565b0160005b81811061092d57505060005b60a0830151805160ff8316101561078a57906107648661075d6107859460ff851690611632565b5187612585565b61077160ff83168a611632565b5261077f60ff821689611632565b50611621565b610736565b5050946020820151936040830151936060840151926020608086015193604460405180958193636eb1769f60e11b835260018060a01b031660048301526000602483015260018060a01b03165afa918215610921576000926108ed575b5060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b61081c8d61133f565b6080518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519261086f846112d0565b83526020830191825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108cc578480610233888751601f198483030160608501526110fb565b9091946020610100826108e26001948a5161127d565b0196019291016108ac565b9091506020813d602011610919575b8161090960209383611377565b810103126101e6575190896107e7565b3d91506108fc565b6040513d6000823e3d90fd5b6020906109386121a1565b82828b0101520161072a565b909b506020813d602011610970575b8161096060209383611377565b810103126101e657519a3861069c565b3d9150610953565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109b8575b816109a960209383611377565b810103126101e657518961061e565b3d915061099c565b90506020813d6020116109ea575b816109db60209383611377565b810103126101e65751876105d9565b3d91506109ce565b90506020813d602011610a1c575b81610a0d60209383611377565b810103126101e657518661059e565b3d9150610a00565b9093506020813d602011610a50575b81610a4060209383611377565b810103126101e657519284610551565b3d9150610a33565b60621960443536030160248260051b60443501013512156101e657610a9a8486610a93366024808760051b60443501013560443501016113fa565b86866127df565b610aa48288611632565b52610aaf8187611632565b506000198114610978576001016104f6565b602090610acc6127a1565b82828a010152016104ea565b90506020813d602011610b12575b81610af360209383611377565b810103126101e657516001600160a01b03811681036101e657856104b1565b3d9150610ae6565b346101e65760603660031901126101e657610b33610f8e565b610b3b610fa4565b90610b44610fba565b91610b4d6120f4565b50610b5782611675565b6040516370a0823160e01b81526001600160a01b0383811660048301529193916020908290602490829086165afa90811561092157600091610f5c575b50604051630dd3126d60e21b81526001600160a01b0384811660048301526020908290602490829087165afa90811561092157600091610f2a575b50845151604051636eb1769f60e11b81526001600160a01b038681166004830152858116602483015290911690602081604481855afa90811561092157600091610ef8575b50838381031161097857859387519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610ec4575b50610ca26040518060a0526112eb565b60a05152602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a08301515192610cff846115b6565b93610d0d6040519586611377565b808552610d1c601f19916115b6565b0160005b818110610ead57505060005b60a0820151805160ff83161015610d7a5790610d5a85610d53610d759460ff851690611632565b5186612585565b610d6760ff831688611632565b5261077f60ff821687611632565b610d2c565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b0398891660048201529990971660248a0152919691959394909290889081806044810103916001600160a01b03165afa90811561092157600091610e77575b610233975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610e1d8d61133f565b60a0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906110fb565b90506020873d602011610ea5575b81610e9260209383611377565b810103126101e657610233965190610de4565b3d9150610e85565b602090610eb86121a1565b82828901015201610d20565b909b506020813d602011610ef0575b81610ee060209383611377565b810103126101e657519a38610c92565b3d9150610ed3565b90506020813d602011610f22575b81610f1360209383611377565b810103126101e6575188610c14565b3d9150610f06565b90506020813d602011610f54575b81610f4560209383611377565b810103126101e6575186610bcf565b3d9150610f38565b90506020813d602011610f86575b81610f7760209383611377565b810103126101e6575185610b94565b3d9150610f6a565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b83811061100f5750506000910152565b8181015183820152602001610fff565b9060209161103881518092818552858086019101610ffc565b601f01601f1916010190565b906110e260018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261109660a08501516101c08060a087015285019061101f565b9060c085015160c085015260e085015160e0850152610100808601519085015261012090818601511690840152610140808501519084015261016080850151908483039085015261101f565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161116d610160938461026088015261030087019061101f565b9060e083015116610280860152610100808301516102a08701526111a5610120928385015161019f19898303016102c08a015261101f565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061124e5750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b848061126d8f93600194601f1987830301885251611044565b9e0193019301919493929061120a565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101a081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ca82611398565b926113d86040519485611377565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261145792016113b3565b910152565b35906001600160a01b03821682036101e657565b906114f760018060a01b0380845116835260208401516020840152604084015160408401526114ae606085015161016080606087015285019061101f565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e0840152610100808501519084015261012080850151908483039085015261101f565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e657805161158781611398565b926115956040519485611377565b818452602082840101116101e6576115b39160208085019101610ffc565b90565b6001600160401b03811161035c5760051b60200190565b604051906115da826112eb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109785760010190565b80518210156116465760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610978570290565b60c052600061016060405161168981611307565b60405161169581611323565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360c051165afa8015610921576000610120526120b8575b506040519063c55dae6360e01b825260208260048160018060a01b0360c051165afa9182156109215760009261207c575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360c051165afa91821561092157600092612040575b506040519163300e6beb60e01b835260208360048160018060a01b0360c051165afa9283156109215760009361200c575b506040516355d3f8af60e11b815260c051602090829060049082906001600160a01b03165afa90811561092157600091611fda575b506040519363189bb2f160e01b855260208560048160018060a01b0360c051165afa94851561092157600095611fa6575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360c051165afa91821561092157600092611f72575b50604051936349b270c560e11b855260208560048160018060a01b0360c051165afa94851561092157600095611f3e575b5060405197637eb7113160e01b895260208960048160018060a01b0360c051165afa98891561092157600099611f0a575b50604051926318160ddd60e01b845260208460048160018060a01b0360c051165afa93841561092157600094611ed6575b506040519163020a17bd60e61b835260208360048160018060a01b0360c051165afa92831561092157600093611ea2575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360c051165afa94851561092157600095611dd6575b50604051634fd41dad60e11b8152600481018d905260c051602090829060249082906001600160a01b03165afa801561092157600061010052611d9a575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360c051165afa9b8c156109215760009c611d5e575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561092157600094611d41575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561092157600061018052611d0d575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561092157600092611ce8575b506040516341976e0960e01b81526001600160a01b03848116600483015260c05191959160209187916024918391165afa94851561092157600095611cb4575b506040516101608181526370a0823160e01b90915260c05181516001600160a01b039182166004909101529051602091602490829085165afa8061014052156109215760009061014051611c7c575b611afc6040518060e052611323565b60018060a01b031660e05152602060e051015261018051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e080510152611b5360ff61012051166115b6565b97611b61604051998a611377565b60ff61012051168952601f19611b7c60ff61012051166115b6565b0160005b818110611c6457505060005b60ff610120511660ff82161015611bcd5780611bad611bc89260c05161221f565b611bba60ff83168d611632565b5261077f60ff82168c611632565b611b8c565b50919395979092949698611bf76001600160401b03611bf081610100511661165c565b921661165c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c218c611307565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611c726115cd565b9201015201611b80565b905060203d602011611cad575b611c968161016051611377565b6020610160518092810103126101e6575190611aed565b503d611c89565b9094506020813d602011611ce0575b81611cd060209383611377565b810103126101e657519338611a9e565b3d9150611cc3565b611d069192503d806000833e611cfe8183611377565b810190611555565b9038611a5e565b6020813d602011611d39575b81611d2660209383611377565b810103126101e657516101805238611a2e565b3d9150611d19565b611d579194503d806000833e611cfe8183611377565b92386119fd565b909b506020813d602011611d92575b81611d7a60209383611377565b810103126101e657611d8b90611527565b9a386119cd565b3d9150611d6d565b6020813d602011611dce575b81611db360209383611377565b810103126101e657611dc490611527565b6101005238611997565b3d9150611da6565b909450610100813d61010011611e9a575b81611df56101009383611377565b810103126101e65760405190611e0a82611323565b611e1381611527565b8252611e2160208201611527565b6020830152611e3260408201611527565b6040830152611e4360608201611527565b6060830152611e546080820161153b565b6080830152611e6560a0820161153b565b60a083015260c081015164ffffffffff811681036101e65760c0830152611e8e9060e001611505565b60e08201529338611959565b3d9150611de7565b9092506020813d602011611ece575b81611ebe60209383611377565b810103126101e657519138611927565b3d9150611eb1565b9093506020813d602011611f02575b81611ef260209383611377565b810103126101e6575192386118f6565b3d9150611ee5565b9098506020813d602011611f36575b81611f2660209383611377565b810103126101e6575197386118c5565b3d9150611f19565b9094506020813d602011611f6a575b81611f5a60209383611377565b810103126101e657519338611894565b3d9150611f4d565b9091506020813d602011611f9e575b81611f8e60209383611377565b810103126101e657519038611863565b3d9150611f81565b9094506020813d602011611fd2575b81611fc260209383611377565b810103126101e657519338611832565b3d9150611fb5565b90506020813d602011612004575b81611ff560209383611377565b810103126101e6575138611801565b3d9150611fe8565b9092506020813d602011612038575b8161202860209383611377565b810103126101e6575191386117cc565b3d915061201b565b9091506020813d602011612074575b8161205c60209383611377565b810103126101e65761206d90611513565b903861179b565b3d915061204f565b9091506020813d6020116120b0575b8161209860209383611377565b810103126101e6576120a990611513565b903861176a565b3d915061208b565b6020813d6020116120ec575b816120d160209383611377565b810103126101e6576120e290611505565b6101205238611739565b3d91506120c4565b604051906121018261133f565b60405161018083612111836112eb565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b604051906121ae8261135b565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b906122286115cd565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561242e576000936124cc575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124c157600092612491575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561240457908c97969594939291600095612476575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561246b57908c9160009a612439575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e1561242e5760009e61240f575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124045760009d6123d2575b5082519d8e6123a0816112eb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116123fd575b6123e98183611377565b810103126123fa5750519b38612392565b80fd5b503d6123df565b83513d6000823e3d90fd5b612426908493929f3d8091833e611cfe8183611377565b9d9091612362565b85513d6000823e3d90fd5b9150988282813d8311612464575b6124518183611377565b810103126123fa57508b90519838612323565b503d612447565b84513d6000823e3d90fd5b61248a91953d8091833e611cfe8183611377565b93386122ef565b90918582813d83116124ba575b6124a88183611377565b810103126123fa5750519060046122ac565b503d61249e565b50513d6000823e3d90fd5b90928382813d831161257e575b6124e38183611377565b810103126123fa575061257260e08651926124fd84611323565b61250681611505565b845261251460208201611513565b6020850152612524888201611513565b8885015261253460608201611527565b606085015261254560808201611527565b608085015261255660a08201611527565b60a085015261256760c08201611527565b60c08501520161220b565b60e08201529138612269565b503d6124d9565b919061258f6121a1565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa9182156109215760009261276c575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561092157600091612732575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109215760009d6126fe575b50604051809e6126aa8261135b565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161272a575b8161271960209383611377565b810103126123fa5750519b3861269b565b3d915061270c565b906020823d602011612764575b8161274c60209383611377565b810103126123fa575061275e9061220b565b3861261a565b3d915061273f565b90916020823d602011612799575b8161278760209383611377565b810103126123fa5750519060206125d6565b3d915061277a565b604051906127ae82611323565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946127ec6127a1565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b38578a918a91600098612af2575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561240457600092612ac3575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa94851561246b57600095612a8f575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561242e57600097612a5b575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f197881561242e578c8b9c9d9e60009a612a0e575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a035760009b6129d4575b5091836129609c9d9e9281809501519388519e8f9586948593631fc58c3360e31b8552840152602483019061101f565b0392165afa988915612404576000996129a5575b508251996129818b611323565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d83116129cd575b6129bc8183611377565b810103126123fa5750519738612974565b503d6129b2565b909a8482813d83116129fc575b6129eb8183611377565b810103126123fa5750519983612930565b503d6129e1565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a54575b612a328183611377565b810103126123fa5750918c97959391858c60009c9b999795519a91509b612908565b503d612a28565b969c8381813d8311612a88575b612a728183611377565b81010312612a84578c9d5051966128d5565b8d80fd5b503d612a68565b949b8281813d8311612abc575b612aa68183611377565b81010312612ab8578b9c5051946128a6565b8c80fd5b503d612a9c565b90918282813d8311612aeb575b612ada8183611377565b810103126123fa5750519038612878565b503d612ad0565b8093508480929993503d8311612b31575b612b0d8183611377565b810103126123fa578151801515036123fa5750602001519489908990612864612830565b503d612b03565b82513d6000823e3d90fdfea2646970667358221220643d0b25d4f1ac367ea3e2c9ad85e42afc253b6210285efe5ac63ea3126b38c564736f6c63430008100033", + "object": "0x6080806040523461001657612bae908161001c8239f35b600080fdfe6101c0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b4357806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610fc2565b611698565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a0190611053565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611053565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611493565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610fc2565b6024359060ff821682036101e6576102339161021f91612254565b604051918291602083526020830190611493565b0390f35b346101e6576003196060368201126101e657610251610fc2565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161147f565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113d6565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161147f565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113d6565b6101208401520135610140820152610342610fee565b916125ba565b604051918291602083526020830190611078565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610fc2565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd93369060040161141d565b6103ce611004565b916103d761101a565b93612814565b6103ea60405180926112bc565bf35b346101e65760a03660031901126101e657610405610fc2565b61040d610fd8565b6001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610456611004565b9161045f61101a565b9060405161046c8161130f565b60008152606060208201526040610481612122565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0386165afa90811561094357600091610b01575b506104d16104c5604435600401356115d9565b6040518060805261139a565b6080516004604435013590819052601f19906104ec906115d9565b0160005b818110610ae857505060005b604435600401358110610a7b57604051636eb1769f60e11b81526001600160a01b03808816600483015285166024820152869086602082806044810103816001600160a01b0385165afa91821561094357600092610a47575b5061055e612122565b5061056881611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829086165afa90811561094357600091610a15575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829087165afa908115610943576000916109e3575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152858116602483015290911690602081604481855afa801561094357600060a0526109b0575b50828281031161099a57869285519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610966575b506106b36040518060c05261132a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a08201515191610713836115d9565b92610721604051948561139a565b808452610730601f19916115d9565b0160005b81811061094f57505060005b60a0820151805160ff83161015610794579061076e8761076761078f9460ff851690611655565b51866125ba565b61077b60ff831687611655565b5261078960ff821686611655565b50611644565b610740565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b03808c166004830152600060248301529098949792959194928b92918a916044918391165afa9182156109435760009261090e575b6020985060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e6108378161137e565b60c0518152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519161088d8361130f565b82526020820190608051825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108ed578480610233888751601f1984830301606085015261112f565b9091946020610100826109036001948a516112bc565b0196019291016108cd565b91506020883d60201161093b575b816109296020938361139a565b810103126101e65760209751916107f4565b3d915061091c565b6040513d6000823e3d90fd5b60209061095a6121d6565b82828801015201610734565b909a506020813d602011610992575b816109826020938361139a565b810103126101e65751998f6106a3565b3d9150610975565b634e487b7160e01b600052601160045260246000fd5b6020813d6020116109db575b816109c96020938361139a565b810103126101e6575160a05287610626565b3d91506109bc565b90506020813d602011610a0d575b816109fe6020938361139a565b810103126101e65751866105e0565b3d91506109f1565b90506020813d602011610a3f575b81610a306020938361139a565b810103126101e65751856105a5565b3d9150610a23565b9091506020813d602011610a73575b81610a636020938361139a565b810103126101e657519083610555565b3d9150610a56565b60621960443536030160248260051b60443501013512156101e657610abd8487610ab6366024808760051b604435010135604435010161141d565b8587612814565b610ac982608051611655565b52610ad681608051611655565b50600019811461099a576001016104fc565b602090610af36127d6565b8282608051010152016104f0565b90506020813d602011610b3b575b81610b1c6020938361139a565b810103126101e657516001600160a01b03811681036101e657856104b2565b3d9150610b0f565b346101e65760603660031901126101e657610b5c610fc2565b610b64610fd8565b90610b6d610fee565b610b75612122565b50610b7f82611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561094357600093610f8e575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561094357600094610f5a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561094357600091610f28575b50828281031161099a57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610ef4575b5060206040519e8f90610cd28261132a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610d17846115d9565b93610d25604051958661139a565b808552610d34601f19916115d9565b0160005b818110610edd57505060005b60a0860151805160ff83161015610d925790610d7288610d6b610d8d9460ff851690611655565b51876125ba565b610d7f60ff831688611655565b5261078960ff821687611655565b610d44565b610dea8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561094357600092610ea7575b610233995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610e4d8261137e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061112f565b91506020893d602011610ed5575b81610ec26020938361139a565b810103126101e657610233985191610e06565b3d9150610eb5565b602090610ee86121d6565b82828901015201610d38565b909a506020813d602011610f20575b81610f106020938361139a565b810103126101e657519938610cc0565b3d9150610f03565b90506020813d602011610f52575b81610f436020938361139a565b810103126101e6575188610c43565b3d9150610f36565b9093506020813d602011610f86575b81610f766020938361139a565b810103126101e657519286610bfd565b3d9150610f69565b9092506020813d602011610fba575b81610faa6020938361139a565b810103126101e657519185610bbf565b3d9150610f9d565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b8381106110435750506000910152565b8181015183820152602001611033565b9060209161106c81518092818552858086019101611030565b601f01601f1916010190565b9061111660018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526110ca60a08501516101c08060a0870152850190611053565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611053565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c0810151916111a16101609384610280880152610320870190611053565b9060e0830151166102a0860152610100808301516102c08701526111d961012092838501516101bf19898303016102e08a0152611053565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061128d5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806112ac8f93600194601f1987830301885251611078565b9e0193019301919493929061123e565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ed826113bb565b926113fb604051948561139a565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261147a92016113d6565b910152565b35906001600160a01b03821682036101e657565b9061151a60018060a01b0380845116835260208401516020840152604084015160408401526114d16060850151610160806060870152850190611053565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611053565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e65780516115aa816113bb565b926115b8604051948561139a565b818452602082840101116101e6576115d69160208085019101611030565b90565b6001600160401b03811161035c5760051b60200190565b604051906115fd8261132a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff811461099a5760010190565b80518210156116695760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e1338090806000190482118115151661099a570290565b60e05260006101606040516116ac81611346565b6040516116b881611362565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa8015610943576000610120526120e6575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa918215610943576000926120aa575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156109435760009261206e575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156109435760009361203a575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa90811561094357600091612008575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa94851561094357600095611fd4575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa91821561094357600092611fa0575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa94851561094357600095611f6c575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa98891561094357600099611f38575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa93841561094357600094611f04575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561094357600093611ed0575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa94851561094357600095611e04575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa801561094357600061010052611dc8575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156109435760009c611d8c575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561094357600094611d6f575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561094357600061014052611d3b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561094357600092611d16575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561094357600095611ce2575b506040516101a08181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa9061018091808352156109435760009151611caa575b611b206040518061016052611362565b60018060a01b0316610160515260206101605101526101405160406101605101526060610160510152608061016051015260018060a01b031660a061016051015260c061016051015260e0610160510152611b8060ff61012051166115d9565b97611b8e604051998a61139a565b60ff61012051168952601f19611ba960ff61012051166115d9565b0160005b818110611c9257505060005b60ff610120511660ff82161015611bfa5780611bda611bf59260e051612254565b611be760ff83168d611655565b5261078960ff82168c611655565b611bb9565b50919395979092949698611c246001600160401b03611c1d81610100511661167f565b921661167f565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c4e8c611346565b610160518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611ca06115f0565b9201015201611bad565b905060203d602011611cdb575b611cc4816101a05161139a565b60206101a0518092810103126101e6575190611b10565b503d611cb7565b9094506020813d602011611d0e575b81611cfe6020938361139a565b810103126101e657519338611ac1565b3d9150611cf1565b611d349192503d806000833e611d2c818361139a565b810190611578565b9038611a81565b6020813d602011611d67575b81611d546020938361139a565b810103126101e657516101405238611a51565b3d9150611d47565b611d859194503d806000833e611d2c818361139a565b9238611a20565b909b506020813d602011611dc0575b81611da86020938361139a565b810103126101e657611db99061154a565b9a386119f0565b3d9150611d9b565b6020813d602011611dfc575b81611de16020938361139a565b810103126101e657611df29061154a565b61010052386119ba565b3d9150611dd4565b909450610100813d61010011611ec8575b81611e23610100938361139a565b810103126101e65760405190611e3882611362565b611e418161154a565b8252611e4f6020820161154a565b6020830152611e606040820161154a565b6040830152611e716060820161154a565b6060830152611e826080820161155e565b6080830152611e9360a0820161155e565b60a083015260c081015164ffffffffff811681036101e65760c0830152611ebc9060e001611528565b60e0820152933861197c565b3d9150611e15565b9092506020813d602011611efc575b81611eec6020938361139a565b810103126101e65751913861194a565b3d9150611edf565b9093506020813d602011611f30575b81611f206020938361139a565b810103126101e657519238611919565b3d9150611f13565b9098506020813d602011611f64575b81611f546020938361139a565b810103126101e6575197386118e8565b3d9150611f47565b9094506020813d602011611f98575b81611f886020938361139a565b810103126101e6575193386118b7565b3d9150611f7b565b9091506020813d602011611fcc575b81611fbc6020938361139a565b810103126101e657519038611886565b3d9150611faf565b9094506020813d602011612000575b81611ff06020938361139a565b810103126101e657519338611855565b3d9150611fe3565b90506020813d602011612032575b816120236020938361139a565b810103126101e6575138611824565b3d9150612016565b9092506020813d602011612066575b816120566020938361139a565b810103126101e6575191386117ef565b3d9150612049565b9091506020813d6020116120a2575b8161208a6020938361139a565b810103126101e65761209b90611536565b90386117be565b3d915061207d565b9091506020813d6020116120de575b816120c66020938361139a565b810103126101e6576120d790611536565b903861178d565b3d91506120b9565b6020813d60201161211a575b816120ff6020938361139a565b810103126101e65761211090611528565b610120523861175c565b3d91506120f2565b6040519061212f8261137e565b6040516101a08361213f8361132a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b604051906121e38261137e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b9061225d6115f0565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561246357600093612501575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124f6576000926124c6575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561243957908c979695949392916000956124ab575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa9889156124a057908c9160009a61246e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156124635760009e612444575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124395760009d612407575b5082519d8e6123d58161132a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311612432575b61241e818361139a565b8101031261242f5750519b386123c7565b80fd5b503d612414565b83513d6000823e3d90fd5b61245b908493929f3d8091833e611d2c818361139a565b9d9091612397565b85513d6000823e3d90fd5b9150988282813d8311612499575b612486818361139a565b8101031261242f57508b90519838612358565b503d61247c565b84513d6000823e3d90fd5b6124bf91953d8091833e611d2c818361139a565b9338612324565b90918582813d83116124ef575b6124dd818361139a565b8101031261242f5750519060046122e1565b503d6124d3565b50513d6000823e3d90fd5b90928382813d83116125b3575b612518818361139a565b8101031261242f57506125a760e086519261253284611362565b61253b81611528565b845261254960208201611536565b6020850152612559888201611536565b888501526125696060820161154a565b606085015261257a6080820161154a565b608085015261258b60a0820161154a565b60a085015261259c60c0820161154a565b60c085015201612240565b60e0820152913861229e565b503d61250e565b91906125c46121d6565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa918215610943576000926127a1575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561094357600091612767575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109435760009d612733575b50604051809e6126df8261137e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161275f575b8161274e6020938361139a565b8101031261242f5750519b386126d0565b3d9150612741565b906020823d602011612799575b816127816020938361139a565b8101031261242f575061279390612240565b3861264f565b3d9150612774565b90916020823d6020116127ce575b816127bc6020938361139a565b8101031261242f57505190602061260b565b3d91506127af565b604051906127e382611362565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946128216127d6565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b6d578a918a91600098612b27575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561243957600092612af8575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa9485156124a057600095612ac4575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561246357600097612a90575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f1978815612463578c8b9c9d9e60009a612a43575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a385760009b612a09575b5091836129959c9d9e9281809501519388519e8f9586948593631fc58c3360e31b85528401526024830190611053565b0392165afa988915612439576000996129da575b508251996129b68b611362565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d8311612a02575b6129f1818361139a565b8101031261242f57505197386129a9565b503d6129e7565b909a8482813d8311612a31575b612a20818361139a565b8101031261242f5750519983612965565b503d612a16565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a89575b612a67818361139a565b8101031261242f5750918c97959391858c60009c9b999795519a91509b61293d565b503d612a5d565b969c8381813d8311612abd575b612aa7818361139a565b81010312612ab9578c9d50519661290a565b8d80fd5b503d612a9d565b949b8281813d8311612af1575b612adb818361139a565b81010312612aed578b9c5051946128db565b8c80fd5b503d612ad1565b90918282813d8311612b20575b612b0f818361139a565b8101031261242f57505190386128ad565b503d612b05565b8093508480929993503d8311612b66575b612b42818361139a565b8101031261242f5781518015150361242f5750602001519489908990612899612865565b503d612b38565b82513d6000823e3d90fdfea264697066735822122022d390f589dc4d3beacef35e29ed05e0724e9833a837be17a0ed8a259eec002664736f6c63430008100033", "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6101a0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b1a57806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610f8e565b611675565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a019061101f565b9260a08201511661024089015260c0810151610260890152015161019f198783030161028088015261101f565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611470565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610f8e565b6024359060ff821682036101e6576102339161021f9161221f565b604051918291602083526020830190611470565b0390f35b346101e6576003196060368201126101e657610251610f8e565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161145c565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113b3565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161145c565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113b3565b6101208401520135610140820152610342610fba565b91612585565b604051918291602083526020830190611044565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610f8e565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd9336906004016113fa565b6103ce610fd0565b916103d7610fe6565b936127df565b6103ea604051809261127d565bf35b346101e65760a03660031901126101e657610405610f8e565b61040d610fa4565b906001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610457610fd0565b61045f610fe6565b60405161046b816112d0565b600081526060602082015260406104806120f4565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0388165afa90811561092157600091610ad8575b506104c1604435600401356115b6565b936104cf6040519586611377565b60046044350135808652601f19906104e6906115b6565b0160005b818110610ac157505060005b604435600401358110610a58575050604051636eb1769f60e11b81526001600160a01b03808516600483015290921660248301525092602084806044810103816001600160a01b0385165afa93841561092157600094610a24575b5061055a6120f4565b5061056481611675565b6040516370a0823160e01b81526001600160a01b0384811660048301526020908290602490829087165afa908115610921576000916109f2575b50604051630dd3126d60e21b81526001600160a01b0385811660048301526020908290602490829088165afa908115610921576000916109c0575b50825151604051636eb1769f60e11b81526001600160a01b038781166004830152868116602483015290911690602081604481855afa9081156109215760009161098e575b50838381031161097857869385519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610944575b506106ac604051806080526112eb565b608051526020608051015203604060805101526060608051015260808051015260a0608051015260c0608051015260e0608051015261010060805101526101206080510152610140608051015260a08101515194610709866115b6565b956107176040519788611377565b808752610726601f19916115b6565b0160005b81811061092d57505060005b60a0830151805160ff8316101561078a57906107648661075d6107859460ff851690611632565b5187612585565b61077160ff83168a611632565b5261077f60ff821689611632565b50611621565b610736565b5050946020820151936040830151936060840151926020608086015193604460405180958193636eb1769f60e11b835260018060a01b031660048301526000602483015260018060a01b03165afa918215610921576000926108ed575b5060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b61081c8d61133f565b6080518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519261086f846112d0565b83526020830191825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108cc578480610233888751601f198483030160608501526110fb565b9091946020610100826108e26001948a5161127d565b0196019291016108ac565b9091506020813d602011610919575b8161090960209383611377565b810103126101e6575190896107e7565b3d91506108fc565b6040513d6000823e3d90fd5b6020906109386121a1565b82828b0101520161072a565b909b506020813d602011610970575b8161096060209383611377565b810103126101e657519a3861069c565b3d9150610953565b634e487b7160e01b600052601160045260246000fd5b90506020813d6020116109b8575b816109a960209383611377565b810103126101e657518961061e565b3d915061099c565b90506020813d6020116109ea575b816109db60209383611377565b810103126101e65751876105d9565b3d91506109ce565b90506020813d602011610a1c575b81610a0d60209383611377565b810103126101e657518661059e565b3d9150610a00565b9093506020813d602011610a50575b81610a4060209383611377565b810103126101e657519284610551565b3d9150610a33565b60621960443536030160248260051b60443501013512156101e657610a9a8486610a93366024808760051b60443501013560443501016113fa565b86866127df565b610aa48288611632565b52610aaf8187611632565b506000198114610978576001016104f6565b602090610acc6127a1565b82828a010152016104ea565b90506020813d602011610b12575b81610af360209383611377565b810103126101e657516001600160a01b03811681036101e657856104b1565b3d9150610ae6565b346101e65760603660031901126101e657610b33610f8e565b610b3b610fa4565b90610b44610fba565b91610b4d6120f4565b50610b5782611675565b6040516370a0823160e01b81526001600160a01b0383811660048301529193916020908290602490829086165afa90811561092157600091610f5c575b50604051630dd3126d60e21b81526001600160a01b0384811660048301526020908290602490829087165afa90811561092157600091610f2a575b50845151604051636eb1769f60e11b81526001600160a01b038681166004830152858116602483015290911690602081604481855afa90811561092157600091610ef8575b50838381031161097857859387519360e08501519460408101519060608101519260808201519460018060a01b0360a0840151169660c0840151986020808601519560018060a01b0390511660246040519e8f9283916370a0823160e01b835260018060a01b031660048301525afa9b8c156109215760009c610ec4575b50610ca26040518060a0526112eb565b60a05152602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a08301515192610cff846115b6565b93610d0d6040519586611377565b808552610d1c601f19916115b6565b0160005b818110610ead57505060005b60a0820151805160ff83161015610d7a5790610d5a85610d53610d759460ff851690611632565b5186612585565b610d6760ff831688611632565b5261077f60ff821687611632565b610d2c565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b0398891660048201529990971660248a0152919691959394909290889081806044810103916001600160a01b03165afa90811561092157600091610e77575b610233975060c08501519060e08601519261010087015194610120880151966101606101408a0151990151996040519b610e1d8d61133f565b60a0518d5260208d015260408c015260608b015260808a015260a089015260c088015260e08701526101008601526101208501526101408401526101608301526101808201526040519182916020835260208301906110fb565b90506020873d602011610ea5575b81610e9260209383611377565b810103126101e657610233965190610de4565b3d9150610e85565b602090610eb86121a1565b82828901015201610d20565b909b506020813d602011610ef0575b81610ee060209383611377565b810103126101e657519a38610c92565b3d9150610ed3565b90506020813d602011610f22575b81610f1360209383611377565b810103126101e6575188610c14565b3d9150610f06565b90506020813d602011610f54575b81610f4560209383611377565b810103126101e6575186610bcf565b3d9150610f38565b90506020813d602011610f86575b81610f7760209383611377565b810103126101e6575185610b94565b3d9150610f6a565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b83811061100f5750506000910152565b8181015183820152602001610fff565b9060209161103881518092818552858086019101610ffc565b601f01601f1916010190565b906110e260018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261109660a08501516101c08060a087015285019061101f565b9060c085015160c085015260e085015160e0850152610100808601519085015261012090818601511690840152610140808501519084015261016080850151908483039085015261101f565b9161018080820151908301526101a08091015191015290565b908151916101a080835260018060a01b03908185511690840152602093848101516101c085015260408101516101e08501526060810151610200850152608081015161022085015260a081015161024085015260c08101519161116d610160938461026088015261030087019061101f565b9060e083015116610280860152610100808301516102a08701526111a5610120928385015161019f19898303016102c08a015261101f565b610140809401516102e0880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061124e5750505050505060e085015160e087015280850151908601528084015190850152808301519084015280820151908301526101808091015191015290565b90919293949b848061126d8f93600194601f1987830301885251611044565b9e0193019301919493929061120a565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101a081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ca82611398565b926113d86040519485611377565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261145792016113b3565b910152565b35906001600160a01b03821682036101e657565b906114f760018060a01b0380845116835260208401516020840152604084015160408401526114ae606085015161016080606087015285019061101f565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e0840152610100808501519084015261012080850151908483039085015261101f565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e657805161158781611398565b926115956040519485611377565b818452602082840101116101e6576115b39160208085019101610ffc565b90565b6001600160401b03811161035c5760051b60200190565b604051906115da826112eb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109785760010190565b80518210156116465760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e13380908060001904821181151516610978570290565b60c052600061016060405161168981611307565b60405161169581611323565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360c051165afa8015610921576000610120526120b8575b506040519063c55dae6360e01b825260208260048160018060a01b0360c051165afa9182156109215760009261207c575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360c051165afa91821561092157600092612040575b506040519163300e6beb60e01b835260208360048160018060a01b0360c051165afa9283156109215760009361200c575b506040516355d3f8af60e11b815260c051602090829060049082906001600160a01b03165afa90811561092157600091611fda575b506040519363189bb2f160e01b855260208560048160018060a01b0360c051165afa94851561092157600095611fa6575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360c051165afa91821561092157600092611f72575b50604051936349b270c560e11b855260208560048160018060a01b0360c051165afa94851561092157600095611f3e575b5060405197637eb7113160e01b895260208960048160018060a01b0360c051165afa98891561092157600099611f0a575b50604051926318160ddd60e01b845260208460048160018060a01b0360c051165afa93841561092157600094611ed6575b506040519163020a17bd60e61b835260208360048160018060a01b0360c051165afa92831561092157600093611ea2575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360c051165afa94851561092157600095611dd6575b50604051634fd41dad60e11b8152600481018d905260c051602090829060249082906001600160a01b03165afa801561092157600061010052611d9a575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360c051165afa9b8c156109215760009c611d5e575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561092157600094611d41575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561092157600061018052611d0d575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561092157600092611ce8575b506040516341976e0960e01b81526001600160a01b03848116600483015260c05191959160209187916024918391165afa94851561092157600095611cb4575b506040516101608181526370a0823160e01b90915260c05181516001600160a01b039182166004909101529051602091602490829085165afa8061014052156109215760009061014051611c7c575b611afc6040518060e052611323565b60018060a01b031660e05152602060e051015261018051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e080510152611b5360ff61012051166115b6565b97611b61604051998a611377565b60ff61012051168952601f19611b7c60ff61012051166115b6565b0160005b818110611c6457505060005b60ff610120511660ff82161015611bcd5780611bad611bc89260c05161221f565b611bba60ff83168d611632565b5261077f60ff82168c611632565b611b8c565b50919395979092949698611bf76001600160401b03611bf081610100511661165c565b921661165c565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c218c611307565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611c726115cd565b9201015201611b80565b905060203d602011611cad575b611c968161016051611377565b6020610160518092810103126101e6575190611aed565b503d611c89565b9094506020813d602011611ce0575b81611cd060209383611377565b810103126101e657519338611a9e565b3d9150611cc3565b611d069192503d806000833e611cfe8183611377565b810190611555565b9038611a5e565b6020813d602011611d39575b81611d2660209383611377565b810103126101e657516101805238611a2e565b3d9150611d19565b611d579194503d806000833e611cfe8183611377565b92386119fd565b909b506020813d602011611d92575b81611d7a60209383611377565b810103126101e657611d8b90611527565b9a386119cd565b3d9150611d6d565b6020813d602011611dce575b81611db360209383611377565b810103126101e657611dc490611527565b6101005238611997565b3d9150611da6565b909450610100813d61010011611e9a575b81611df56101009383611377565b810103126101e65760405190611e0a82611323565b611e1381611527565b8252611e2160208201611527565b6020830152611e3260408201611527565b6040830152611e4360608201611527565b6060830152611e546080820161153b565b6080830152611e6560a0820161153b565b60a083015260c081015164ffffffffff811681036101e65760c0830152611e8e9060e001611505565b60e08201529338611959565b3d9150611de7565b9092506020813d602011611ece575b81611ebe60209383611377565b810103126101e657519138611927565b3d9150611eb1565b9093506020813d602011611f02575b81611ef260209383611377565b810103126101e6575192386118f6565b3d9150611ee5565b9098506020813d602011611f36575b81611f2660209383611377565b810103126101e6575197386118c5565b3d9150611f19565b9094506020813d602011611f6a575b81611f5a60209383611377565b810103126101e657519338611894565b3d9150611f4d565b9091506020813d602011611f9e575b81611f8e60209383611377565b810103126101e657519038611863565b3d9150611f81565b9094506020813d602011611fd2575b81611fc260209383611377565b810103126101e657519338611832565b3d9150611fb5565b90506020813d602011612004575b81611ff560209383611377565b810103126101e6575138611801565b3d9150611fe8565b9092506020813d602011612038575b8161202860209383611377565b810103126101e6575191386117cc565b3d915061201b565b9091506020813d602011612074575b8161205c60209383611377565b810103126101e65761206d90611513565b903861179b565b3d915061204f565b9091506020813d6020116120b0575b8161209860209383611377565b810103126101e6576120a990611513565b903861176a565b3d915061208b565b6020813d6020116120ec575b816120d160209383611377565b810103126101e6576120e290611505565b6101205238611739565b3d91506120c4565b604051906121018261133f565b60405161018083612111836112eb565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e0880152860152840152820152826101608201520152565b604051906121ae8261135b565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b906122286115cd565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561242e576000936124cc575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124c157600092612491575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561240457908c97969594939291600095612476575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561246b57908c9160009a612439575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e1561242e5760009e61240f575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124045760009d6123d2575b5082519d8e6123a0816112eb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116123fd575b6123e98183611377565b810103126123fa5750519b38612392565b80fd5b503d6123df565b83513d6000823e3d90fd5b612426908493929f3d8091833e611cfe8183611377565b9d9091612362565b85513d6000823e3d90fd5b9150988282813d8311612464575b6124518183611377565b810103126123fa57508b90519838612323565b503d612447565b84513d6000823e3d90fd5b61248a91953d8091833e611cfe8183611377565b93386122ef565b90918582813d83116124ba575b6124a88183611377565b810103126123fa5750519060046122ac565b503d61249e565b50513d6000823e3d90fd5b90928382813d831161257e575b6124e38183611377565b810103126123fa575061257260e08651926124fd84611323565b61250681611505565b845261251460208201611513565b6020850152612524888201611513565b8885015261253460608201611527565b606085015261254560808201611527565b608085015261255660a08201611527565b60a085015261256760c08201611527565b60c08501520161220b565b60e08201529138612269565b503d6124d9565b919061258f6121a1565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa9182156109215760009261276c575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561092157600091612732575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109215760009d6126fe575b50604051809e6126aa8261135b565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161272a575b8161271960209383611377565b810103126123fa5750519b3861269b565b3d915061270c565b906020823d602011612764575b8161274c60209383611377565b810103126123fa575061275e9061220b565b3861261a565b3d915061273f565b90916020823d602011612799575b8161278760209383611377565b810103126123fa5750519060206125d6565b3d915061277a565b604051906127ae82611323565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946127ec6127a1565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b38578a918a91600098612af2575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561240457600092612ac3575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa94851561246b57600095612a8f575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561242e57600097612a5b575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f197881561242e578c8b9c9d9e60009a612a0e575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a035760009b6129d4575b5091836129609c9d9e9281809501519388519e8f9586948593631fc58c3360e31b8552840152602483019061101f565b0392165afa988915612404576000996129a5575b508251996129818b611323565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d83116129cd575b6129bc8183611377565b810103126123fa5750519738612974565b503d6129b2565b909a8482813d83116129fc575b6129eb8183611377565b810103126123fa5750519983612930565b503d6129e1565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a54575b612a328183611377565b810103126123fa5750918c97959391858c60009c9b999795519a91509b612908565b503d612a28565b969c8381813d8311612a88575b612a728183611377565b81010312612a84578c9d5051966128d5565b8d80fd5b503d612a68565b949b8281813d8311612abc575b612aa68183611377565b81010312612ab8578b9c5051946128a6565b8c80fd5b503d612a9c565b90918282813d8311612aeb575b612ada8183611377565b810103126123fa5750519038612878565b503d612ad0565b8093508480929993503d8311612b31575b612b0d8183611377565b810103126123fa578151801515036123fa5750602001519489908990612864612830565b503d612b03565b82513d6000823e3d90fdfea2646970667358221220643d0b25d4f1ac367ea3e2c9ad85e42afc253b6210285efe5ac63ea3126b38c564736f6c63430008100033", - "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;2283:20:2;;1583:1980;;;;-1:-1:-1;;;;;1583:1980:2;;2283:20;;;;;;;1583:1980;2283:20;;;1583:1980;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::i;:::-;;;;;;;;;2425:10;;1583:1980;2437:15;1583:1980;;;;;2437:15;;;;-1:-1:-1;;1583:1980:2;;-1:-1:-1;;;2616:33:2;;-1:-1:-1;;;;;1583:1980:2;;;;2616:33;;1583:1980;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;2616:33;1583:1980;-1:-1:-1;;;;;1583:1980:2;;2616:33;;;;;;;1583:1980;2616:33;;;2420:136;1583:1980;;;:::i;:::-;;8351:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8400:24:1;;1583:1980:2;;;;;;;;;;;8400:24:1;;;;;;;1583:1980:2;8400:24:1;;;2420:136:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8460:30:1;;1583:1980:2;;;;;;;;;;;8460:30:1;;;;;;;1583:1980:2;8460:30:1;;;2420:136:2;-1:-1:-1;8587:18:1;;1583:1980:2;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8634:70:1;;1583:1980:2;;;;;;;;;;;;;;;;;8634:70:1;;;;;;;1583:1980:2;8634:70:1;;;2420:136:2;1583:1980;;;;;;;;8784:18:1;;;;:25;1583:1980:2;8784:25:1;;;8827:27;1583:1980:2;8827:27:1;;1583:1980:2;8873:28:1;1583:1980:2;8873:28:1;;1583:1980:2;8915:23:1;;;;;1583:1980:2;;;;;;;8957:28:1;;1583:1980:2;;9000:24:1;;;;1583:1980:2;9048:33:1;1583:1980:2;9048:33:1;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9104:54:1;;1583:1980:2;;;;;;;9104:54:1;;1583:1980:2;9104:54:1;;;;;;;1583:1980:2;9104:54:1;;;2420:136:2;1583:1980;;;;;8915:23:1;1583:1980:2;;:::i;:::-;8915:23:1;1583:1980:2;;;8915:23:1;8542:623;;1583:1980:2;;;8915:23:1;8542:623;;1583:1980:2;;8915:23:1;8542:623;;1583:1980:2;8915:23:1;8542:623;;;1583:1980:2;;8915:23:1;8542:623;;1583:1980:2;9000:24:1;8915:23;8542:623;;1583:1980:2;;8915:23:1;8542:623;;1583:1980:2;8542:623:1;8915:23;8542:623;;1583:1980:2;8542:623:1;8915:23;8542:623;;1583:1980:2;8542:623:1;8915:23;8542:623;;1583:1980:2;;9267:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1583:1980:2;9367:3:1;1583:1980:2;9267:25:1;;9333;1583:1980:2;;;;;9329:36:1;;;;1583:1980:2;9392:71:1;1583:1980:2;9425:28:1;9367:3;1583:1980:2;;;;9425:28:1;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;1583:1980:2;;;9380:83:1;;:::i;:::-;;;1583:1980:2;;;9380:83:1;;:::i;:::-;;9367:3;:::i;:::-;9316:11;;9329:36;;;;1583:1980:2;9575:26:1;;1583:1980:2;9636:32:1;1583:1980:2;9636:32:1;;1583:1980:2;9703:32:1;1583:1980:2;9703:32:1;;1583:1980:2;9756:18:1;1583:1980:2;8915:23:1;9756:18;;1583:1980:2;;;;;;;;;;;;9801:32:1;;1583:1980:2;;;;;;;9801:32:1;;1583:1980:2;;;;;;;;;;;;9801:32:1;;;;;;;1583:1980:2;9801:32:1;;;9311:159;9886:16;9000:24;9886:16;;1583:1980:2;9925:20:1;1583:1980:2;9925:20:1;;1583:1980:2;9977:29:1;8542:623;9977:29;;1583:1980:2;10029:20:1;8542:623;10029:20;;1583:1980:2;10081:29:1;1583:1980:2;8542:623:1;10081:29;;1583:1980:2;10140:27:1;;1583:1980:2;;;;;;;;:::i;:::-;8915:23:1;1583:1980:2;;;;9489:687:1;;1583:1980:2;;9489:687:1;;1583:1980:2;;9489:687:1;;1583:1980:2;8915:23:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9000:24:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9489:687:1;;;1583:1980:2;;;;;;;:::i;:::-;;;;2575:173;;1583:1980;;;;2575:173;;1583:1980;;;;;;;;;8915:23:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8542:623:1;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;9801:32:1;;;;1583:1980:2;9801:32:1;;1583:1980:2;9801:32:1;;;;;;1583:1980:2;9801:32:1;;;:::i;:::-;;;1583:1980:2;;;;;9801:32:1;;;;;;;-1:-1:-1;9801:32:1;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;1583:1980:2;9104:54:1;;1583:1980:2;9104:54:1;;;;;;1583:1980:2;9104:54:1;;;:::i;:::-;;;1583:1980:2;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;1583:1980:2;;;;;;;;;;;;8634:70:1;;;1583:1980:2;8634:70:1;;1583:1980:2;8634:70:1;;;;;;1583:1980:2;8634:70:1;;;:::i;:::-;;;1583:1980:2;;;;;8634:70:1;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;1583:1980:2;8460:30:1;;1583:1980:2;8460:30:1;;;;;;1583:1980:2;8460:30:1;;;:::i;:::-;;;1583:1980:2;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;1583:1980:2;8400:24:1;;1583:1980:2;8400:24:1;;;;;;1583:1980:2;8400:24:1;;;:::i;:::-;;;1583:1980:2;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;2616:33:2;;;;1583:1980;2616:33;;1583:1980;2616:33;;;;;;1583:1980;2616:33;;;:::i;:::-;;;1583:1980;;;;;2616:33;;;;;;;-1:-1:-1;2616:33:2;;2454:3;1583:1980;;;;;;;;;;;;;;;;;;;;2479:70;1583:1980;;;;;;;;;;;;;;;;;;;:::i;:::-;2479:70;;;:::i;:::-;2467:82;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1583:1980:2;;;;;;2425:10;;1583:1980;;;;;:::i;:::-;;;;;;;;;;2283:20;;;1583:1980;2283:20;;1583:1980;2283:20;;;;;;1583:1980;2283:20;;;:::i;:::-;;;1583:1980;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;2283:20;;;;;;-1:-1:-1;2283:20:2;;1583:1980;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;:::i;:::-;;8351:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8400:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8400:24:1;;1583:1980:2;;;;8400:24:1;;1583:1980:2;;;;;;;;8400:24:1;;;;;;;1583:1980:2;8400:24:1;;;1583:1980:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8460:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8460:30:1;;1583:1980:2;8400:24:1;;1583:1980:2;;;;;;;;8460:30:1;;;;;;;1583:1980:2;8460:30:1;;;1583:1980:2;-1:-1:-1;8587:18:1;;1583:1980:2;;;-1:-1:-1;;;8634:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8634:70:1;;1583:1980:2;;;;;;;;;;;;8400:24:1;1583:1980:2;;;;8634:70:1;;;;;;;1583:1980:2;8634:70:1;;;1583:1980:2;;;;;;;;;8784:18:1;;;;:25;1583:1980:2;8784:25:1;;;8827:27;1583:1980:2;8827:27:1;;1583:1980:2;8873:28:1;1583:1980:2;8873:28:1;;1583:1980:2;8915:23:1;;;;;1583:1980:2;;;;;;;8957:28:1;;1583:1980:2;;9000:24:1;;;;1583:1980:2;9048:33:1;8400:24;9048:33;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9104:54:1;;1583:1980:2;;;;;;;9104:54:1;;1583:1980:2;9104:54:1;;;;;;;1583:1980:2;9104:54:1;;;1583:1980:2;;;;;;;;;:::i;:::-;;;;8400:24:1;1583:1980:2;8542:623:1;;1583:1980:2;;;;8542:623:1;;1583:1980:2;;;8542:623:1;;1583:1980:2;8915:23:1;1583:1980:2;8542:623:1;;1583:1980:2;;8542:623:1;;;1583:1980:2;9000:24:1;1583:1980:2;8542:623:1;;1583:1980:2;;;8542:623:1;;1583:1980:2;8542:623:1;1583:1980:2;8542:623:1;;1583:1980:2;8542:623:1;1583:1980:2;8542:623:1;;1583:1980:2;8542:623:1;1583:1980:2;8542:623:1;;1583:1980:2;;9267:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9316:11:1;;1583:1980:2;9367:3:1;1583:1980:2;9267:25:1;;9333;1583:1980:2;;;;;9329:36:1;;;;1583:1980:2;9392:71:1;1583:1980:2;9425:28:1;9367:3;1583:1980:2;;;;9425:28:1;;:::i;:::-;;9392:71;;:::i;:::-;9380:83;1583:1980:2;;;9380:83:1;;:::i;:::-;;;1583:1980:2;;;9380:83:1;;:::i;9367:3::-;9316:11;;9329:36;-1:-1:-1;;8400:24:1;9575:26;;;1583:1980:2;;9636:32:1;;;1583:1980:2;;9703:32:1;;1583:1980:2;8915:23:1;9756:18;;1583:1980:2;;;-1:-1:-1;;;9801:32:1;;-1:-1:-1;;;;;1583:1980:2;;;;9801:32:1;;1583:1980:2;;;;;;;;;;;;;9575:26:1;;1583:1980:2;;8400:24:1;1583:1980:2;;;;;;;9801:32:1;;-1:-1:-1;;;;;1583:1980:2;9801:32:1;;;;;;;1583:1980:2;9801:32:1;;;9311:159;1583:1980:2;9886:16:1;;9000:24;9886:16;;1583:1980:2;9925:20:1;1583:1980:2;9925:20:1;;1583:1980:2;9977:29:1;8542:623;9977:29;;1583:1980:2;10029:20:1;8542:623;10029:20;;1583:1980:2;10081:29:1;1583:1980:2;8542:623:1;10081:29;;1583:1980:2;10140:27:1;;1583:1980:2;;;;;;;;:::i;:::-;;;;;8400:24:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;;9489:687:1;;1583:1980:2;8915:23:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9000:24:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;8542:623:1;9489:687;;1583:1980:2;;9489:687:1;;1583:1980:2;9489:687:1;;;1583:1980:2;;;;;;8400:24:1;1583:1980:2;;8400:24:1;1583:1980:2;;;;:::i;9801:32:1:-;;;8400:24;9801:32;;8400:24;9801:32;;;;;;8400:24;9801:32;;;:::i;:::-;;;1583:1980:2;;;;;;;9801:32:1;;;;;;-1:-1:-1;9801:32:1;;1583:1980:2;8400:24:1;1583:1980:2;;;:::i;:::-;;;;;;;;;;9104:54:1;;;;8400:24;9104:54;;8400:24;9104:54;;;;;;8400:24;9104:54;;;:::i;:::-;;;1583:1980:2;;;;;9104:54:1;;;;;;;-1:-1:-1;9104:54:1;;8634:70;;;8400:24;8634:70;;8400:24;8634:70;;;;;;8400:24;8634:70;;;:::i;:::-;;;1583:1980:2;;;;;8634:70:1;;;;;;-1:-1:-1;8634:70:1;;8460:30;;;8400:24;8460:30;;8400:24;8460:30;;;;;;8400:24;8460:30;;;:::i;:::-;;;1583:1980:2;;;;;8460:30:1;;;;;;-1:-1:-1;8460:30:1;;8400:24;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;8400:24:1;;;;;;-1:-1:-1;8400:24:1;;1583:1980:2;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18:1;;1583:1980:2;;;;4218:18:1;;;;;;;;;;;:::o;6145:2007::-;;;-1:-1:-1;1583:1980:2;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6236:17:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6236:17:1;;;;;;-1:-1:-1;1583:1980:2;6236:17:1;;;6145:2007;1583:1980:2;;;;;;;6279:17:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;;6145:2007;1583:1980:2;;;;;;;6331:26:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;;6145:2007;1583:1980:2;;;;;;;6380:21:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6433:26:1;;6145:2007;6236:15;1583:1980:2;;;;6236:17:1;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;6433:26:1;;;;;;;-1:-1:-1;6433:26:1;;;6145:2007;1583:1980:2;;;;;;;6496:31:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;;6145:2007;1583:1980:2;;;;;;;6564:31:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;;6145:2007;1583:1980:2;;;;;;;6626:25:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;;6145:2007;1583:1980:2;;;;;;;6676:22:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;;6145:2007;1583:1980:2;;;;;;;6723:19:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;;6145:2007;1583:1980:2;;;;;;;6767:19:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;;6145:2007;1583:1980:2;;;;;;;6831:19:1;;1583:1980:2;;6236:17:1;1583:1980:2;;;;;;6145:2007:1;6236:15;1583:1980:2;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6883:32:1;;6236:17;6883:32;;1583:1980:2;;;6145:2007:1;6236:15;1583:1980:2;;;;;;;;-1:-1:-1;;;;;1583:1980:2;6883:32:1;;;;;;-1:-1:-1;1583:1980:2;6883:32:1;;;6145:2007;1583:1980:2;;;;;;;6948:32:1;;6236:17;6948:32;;1583:1980:2;;;;;;;;;;6145:2007:1;6236:15;1583:1980:2;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7070:25:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6236:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7070:25:1;;;;;;;-1:-1:-1;7070:25:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7113:27:1;;1583:1980:2;;6236:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7113:27:1;;;;;;-1:-1:-1;7113:27:1;;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7182:23:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6236:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7182:23:1;;;;;;;-1:-1:-1;7182:23:1;;;6145:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7257:34:1;;-1:-1:-1;;;;;1583:1980:2;;;6236:17:1;7257:34;;1583:1980:2;6145:2007:1;6236:15;1583:1980:2;;;;;;;;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;;6145:2007;-1:-1:-1;1583:1980:2;;;7315:42:1;;;-1:-1:-1;;;7315:42:1;;;6145:2007;6236:15;7315:42;;-1:-1:-1;;;;;1583:1980:2;;;6236:17:1;7315:42;;;1583:1980:2;7315:42:1;;1583:1980:2;;;;7315:42:1;;1583:1980:2;;7315:42:1;;;1583:1980:2;7315:42:1;;;;-1:-1:-1;7315:42:1;1583:1980:2;7315:42:1;;;6145:2007;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;;;;7016:348:1;;1583:1980:2;7113:27:1;1583:1980:2;;;7016:348:1;;1583:1980:2;;;7016:348:1;;1583:1980:2;;;7016:348:1;;1583:1980:2;;;;;;;;;7016:348:1;;1583:1980:2;6145:2007:1;1583:1980:2;7016:348:1;;1583:1980:2;;7016:348:1;;;1583:1980:2;;;;6219:34:1;1583:1980:2;;:::i;:::-;;;;;;;;:::i;:::-;;;6219:34:1;1583:1980:2;;;;;;;;6219:34:1;1583:1980:2;;:::i;:::-;;-1:-1:-1;1583:1980:2;;;;;;7448:11:1;;-1:-1:-1;7476:3:1;1583:1980:2;;6219:34:1;1583:1980:2;;;;7461:13:1;;;;7501:24;;7476:3;7501:24;6145:2007;7501:24;;:::i;:::-;7489:36;1583:1980:2;;;7489:36:1;;:::i;:::-;;;1583:1980:2;;;7489:36:1;;:::i;7476:3::-;7448:11;;7461:13;;;;;;;;;;;7866:38;-1:-1:-1;;;;;7775:38:1;6856:59;1583:1980:2;6856:59:1;1583:1980:2;7775:38:1;:::i;:::-;1583:1980:2;;7866:38:1;:::i;:::-;1583:1980:2;;;7970:27:1;1583:1980:2;7970:27:1;;4218:18;1583:1980:2;8063:27:1;;4218:18;1583:1980:2;;;;;;;;:::i;:::-;;;;;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;6145:2007:1;7551:596;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;;7551:596:1;;1583:1980:2;6145:2007:1;:::o;1583:1980:2:-;;;;;;;;:::i;:::-;;;;;;;;7315:42:1;;;1583:1980:2;7315:42:1;1583:1980:2;7315:42:1;;;;;;1583:1980:2;7315:42:1;;:::i;:::-;1583:1980:2;;;7315:42:1;;;;1583:1980:2;;;;;7315:42:1;;;;;;;;7257:34;;;;1583:1980:2;7257:34:1;;1583:1980:2;7257:34:1;;;;;;1583:1980:2;7257:34:1;;;:::i;:::-;;;1583:1980:2;;;;;7257:34:1;;;;;;;-1:-1:-1;7257:34:1;;7182:23;;;;;;;-1:-1:-1;7182:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7113:27;1583:1980:2;7113:27:1;;1583:1980:2;7113:27:1;;;;;;1583:1980:2;7113:27:1;;;:::i;:::-;;;1583:1980:2;;;;;7113:27:1;;;;;;;;-1:-1:-1;7113:27:1;;7070:25;;;;;;;-1:-1:-1;7070:25:1;;;;;;:::i;:::-;;;;;6948:32;;;;1583:1980:2;6948:32:1;;1583:1980:2;6948:32:1;;;;;;1583:1980:2;6948:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6948:32:1;;;;;;;-1:-1:-1;6948:32:1;;6883;1583:1980:2;6883:32:1;;1583:1980:2;6883:32:1;;;;;;1583:1980:2;6883:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6883:32:1;;;;;;;-1:-1:-1;6883:32:1;;6831:19;;;;1583:1980:2;6831:19:1;;1583:1980:2;6831:19:1;;;;;;1583:1980:2;6831:19:1;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;6145:2007:1;1583:1980:2;;;;;;;;;;6145:2007:1;1583:1980:2;;;;;;;;:::i;:::-;;;;;6831:19:1;;;;;;;-1:-1:-1;6831:19:1;;6767;;;;1583:1980:2;6767:19:1;;1583:1980:2;6767:19:1;;;;;;1583:1980:2;6767:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6767:19:1;;;;;;;-1:-1:-1;6767:19:1;;6723;;;;1583:1980:2;6723:19:1;;1583:1980:2;6723:19:1;;;;;;1583:1980:2;6723:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6723:19:1;;;;;;;-1:-1:-1;6723:19:1;;6676:22;;;;1583:1980:2;6676:22:1;;1583:1980:2;6676:22:1;;;;;;1583:1980:2;6676:22:1;;;:::i;:::-;;;1583:1980:2;;;;;6676:22:1;;;;;;;-1:-1:-1;6676:22:1;;6626:25;;;;1583:1980:2;6626:25:1;;1583:1980:2;6626:25:1;;;;;;1583:1980:2;6626:25:1;;;:::i;:::-;;;1583:1980:2;;;;;6626:25:1;;;;;;;-1:-1:-1;6626:25:1;;6564:31;;;;1583:1980:2;6564:31:1;;1583:1980:2;6564:31:1;;;;;;1583:1980:2;6564:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6564:31:1;;;;;;;-1:-1:-1;6564:31:1;;6496;;;;1583:1980:2;6496:31:1;;1583:1980:2;6496:31:1;;;;;;1583:1980:2;6496:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6496:31:1;;;;;;;-1:-1:-1;6496:31:1;;6433:26;;;1583:1980:2;6433:26:1;;1583:1980:2;6433:26:1;;;;;;1583:1980:2;6433:26:1;;;:::i;:::-;;;1583:1980:2;;;;;6433:26:1;;;;;;-1:-1:-1;6433:26:1;;6380:21;;;;1583:1980:2;6380:21:1;;1583:1980:2;6380:21:1;;;;;;1583:1980:2;6380:21:1;;;:::i;:::-;;;1583:1980:2;;;;;6380:21:1;;;;;;;-1:-1:-1;6380:21:1;;6331:26;;;;1583:1980:2;6331:26:1;;1583:1980:2;6331:26:1;;;;;;1583:1980:2;6331:26:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6331:26:1;;;;;;;-1:-1:-1;6331:26:1;;6279:17;;;;1583:1980:2;6279:17:1;;1583:1980:2;6279:17:1;;;;;;1583:1980:2;6279:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6279:17:1;;;;;;;-1:-1:-1;6279:17:1;;6236;1583:1980:2;6236:17:1;;1583:1980:2;6236:17:1;;;;;;1583:1980:2;6236:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6236:17:1;;;;;;;-1:-1:-1;6236:17:1;;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;10185:782:1:-;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10321:25:1;;1583:1980:2;;;;10321:25:1;;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;;;;;10321:25:1;;1583:1980:2;;;;10321:25:1;;;;;;;-1:-1:-1;10321:25:1;;;10185:782;1583:1980:2;;10409:15:1;;;;1583:1980:2;;;;;;-1:-1:-1;;;;;10452:32:1;10321:25;10452:32;;;;1583:1980:2;;;;;;;;;;;;;;10504:33:1;;;;;;;;;-1:-1:-1;10504:33:1;;;10185:782;10574:35;10321:25;10574:35;;1583:1980:2;10574:35:1;;1583:1980:2;;10638:27:1;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;10681:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10681:29:1;;;10185:782;10742:19;;;;1583:1980:2;;;;;;;;;;;;;;;10727:35:1;;10321:25;10727:35;;1583:1980:2;10727:35:1;;;;;;;;;;-1:-1:-1;10727:35:1;;;10185:782;1583:1980:2;;;10823:19:1;1583:1980:2;10823:19:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;10860:31:1;;;;10321:25;10860:31;-1:-1:-1;10860:31:1;;;;;;;-1:-1:-1;10860:31:1;;;10185:782;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10914:39:1;;1583:1980:2;;10321:25:1;10914:39;;1583:1980:2;;;;;;;10914:39:1;;1583:1980:2;10914:39:1;;;;;;;-1:-1:-1;10914:39:1;;;10185:782;1583:1980:2;;;;;;;;:::i;:::-;;10366:596:1;;1583:1980:2;10366:596:1;;1583:1980:2;10366:596:1;;;1583:1980:2;10452:32:1;10366:596;;1583:1980:2;;10366:596:1;;1583:1980:2;10638:27:1;10366:596;;1583:1980:2;;10366:596:1;;1583:1980:2;10366:596:1;;1583:1980:2;10366:596:1;;;1583:1980:2;10366:596:1;;;1583:1980:2;10185:782:1;:::o;10914:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;10914:39:1;;;;1583:1980:2;;;10914:39:1;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10860:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10727:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;10727:35:1;;;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10681:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10504:33;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;10321:25:1;10504:33;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10321:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10321:25:1;;;;;;;;;10971:925;;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11271:63:1;;-1:-1:-1;;;;;1583:1980:2;;;11271:63:1;;;1583:1980:2;;;;;;;;;;;;;;;11271:63:1;1583:1980:2;;;;11271:63:1;;;;;;;-1:-1:-1;11271:63:1;;;10971:925;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11353:57:1;;-1:-1:-1;;;;;1583:1980:2;;;11271:63:1;11353:57;;1583:1980:2;;;;;;;;;11271:63:1;;1583:1980:2;;;;;;11353:57:1;;;;;;;-1:-1:-1;11353:57:1;;;10971:925;-1:-1:-1;11271:63:1;11438:22;;1583:1980:2;;11480:14:1;;;1583:1980:2;11531:31:1;;;1583:1980:2;;11591:23:1;;1583:1980:2;11630:10:1;;;;11657:11;;;1583:1980:2;;11689:15:1;;1583:1980:2;11725:15:1;;;1583:1980:2;11758:12:1;;;;11793:17;;;1583:1980:2;;;;;-1:-1:-1;;;11835:47:1;;-1:-1:-1;;;;;1583:1980:2;;;11271:63:1;11835:47;;1583:1980:2;;11758:12:1;;1583:1980:2;;;;;;;;;;11630:10:1;;1583:1980:2;;;;;11835:47:1;;1583:1980:2;11835:47:1;11271:63;11835:47;;;;;;;-1:-1:-1;11835:47:1;;;10971:925;1583:1980:2;;;;;;;;:::i;:::-;;;11271:63:1;11170:721;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;11170:721:1;;1583:1980:2;11630:10:1;11170:721;;1583:1980:2;11531:31:1;11170:721;;1583:1980:2;;11170:721:1;;1583:1980:2;11657:11:1;11170:721;;1583:1980:2;;11170:721:1;;1583:1980:2;11725:15:1;11170:721;;1583:1980:2;11758:12:1;11170:721;;1583:1980:2;11793:17:1;11170:721;;1583:1980:2;11170:721:1;;;1583:1980:2;11170:721:1;;;1583:1980:2;11170:721:1;;;1583:1980:2;10971:925:1;:::o;11835:47::-;;;11271:63;11835:47;;11271:63;11835:47;;;;;;11271:63;11835:47;;;:::i;:::-;;;1583:1980:2;;;;;;11835:47:1;;;;;;;-1:-1:-1;11835:47:1;;11353:57;;11271:63;11353:57;;11271:63;11353:57;;;;;;11271:63;11353:57;;;:::i;:::-;;;1583:1980:2;;;;;;;;:::i;:::-;11353:57:1;;;;;;-1:-1:-1;11353:57:1;;11271:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;11271:63:1;;;;;;-1:-1:-1;11271:63:1;;1583:1980:2;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2757:804::-;;;;;;1583:1980;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:36;;;;;;;1583:1980;;3056:36;;;;;;;1583:1980;;;;-1:-1:-1;3056:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3181:34:2;;-1:-1:-1;;;;;1583:1980:2;;;3181:34;;;1583:1980;;;;;;;;;;;;;;;;;;;;;;3181:34;;;;;;;;;;;-1:-1:-1;3181:34:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3234:25:2;;1583:1980;;;3234:25;;;1583:1980;;;;3234:25;1583:1980;;;3234:25;;;;;;;;-1:-1:-1;3234:25:2;;;2757:804;1583:1980;;-1:-1:-1;;;3288:35:2;;;;;1583:1980;;;;-1:-1:-1;3288:35:2;1583:1980;3288:35;1583:1980;3288:35;1583:1980;3288:35;-1:-1:-1;3288:35:2;;;;;;;-1:-1:-1;3288:35:2;;;2757:804;1583:1980;;;;;;;;;;3348:36;;;1583:1980;3348:36;;;;;1583:1980;3348:36;-1:-1:-1;3348:36:2;;;;;;;;;;;;-1:-1:-1;3348:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3452:28:2;;1583:1980;;;;;;;-1:-1:-1;;3452:28:2;;;;;;;-1:-1:-1;3452:28:2;;;2757:804;3515:31;;;1583:1980;3515:31;;;;;;;;;1583:1980;;;;;;;;;;;;;3497:50;;;;1583:1980;;;;;;:::i;:::-;3497:50;1583:1980;;3497:50;;;;;;;-1:-1:-1;3497:50:2;;;2757:804;1583:1980;;;;;;;:::i;:::-;;;3112:444;;1583:1980;3112:444;;1583:1980;3112:444;;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;2757:804;:::o;3497:50::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3497:50;;;;;;;;;3452:28;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;-1:-1:-1;1583:1980:2;;;3452:28;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;;3348:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;3348:36;;;;;;;;;;;3288:35;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3288:35;;;1583:1980;;;;3288:35;;;;;3234:25;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3234:25;;;1583:1980;;;;3234:25;;;;;3181:34;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3181:34;;;;;;;;;3056:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;3181:34;3056:36;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;", + "object": "0x6101c0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b4357806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610fc2565b611698565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a0190611053565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611053565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611493565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610fc2565b6024359060ff821682036101e6576102339161021f91612254565b604051918291602083526020830190611493565b0390f35b346101e6576003196060368201126101e657610251610fc2565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161147f565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113d6565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161147f565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113d6565b6101208401520135610140820152610342610fee565b916125ba565b604051918291602083526020830190611078565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610fc2565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd93369060040161141d565b6103ce611004565b916103d761101a565b93612814565b6103ea60405180926112bc565bf35b346101e65760a03660031901126101e657610405610fc2565b61040d610fd8565b6001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610456611004565b9161045f61101a565b9060405161046c8161130f565b60008152606060208201526040610481612122565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0386165afa90811561094357600091610b01575b506104d16104c5604435600401356115d9565b6040518060805261139a565b6080516004604435013590819052601f19906104ec906115d9565b0160005b818110610ae857505060005b604435600401358110610a7b57604051636eb1769f60e11b81526001600160a01b03808816600483015285166024820152869086602082806044810103816001600160a01b0385165afa91821561094357600092610a47575b5061055e612122565b5061056881611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829086165afa90811561094357600091610a15575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829087165afa908115610943576000916109e3575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152858116602483015290911690602081604481855afa801561094357600060a0526109b0575b50828281031161099a57869285519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610966575b506106b36040518060c05261132a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a08201515191610713836115d9565b92610721604051948561139a565b808452610730601f19916115d9565b0160005b81811061094f57505060005b60a0820151805160ff83161015610794579061076e8761076761078f9460ff851690611655565b51866125ba565b61077b60ff831687611655565b5261078960ff821686611655565b50611644565b610740565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b03808c166004830152600060248301529098949792959194928b92918a916044918391165afa9182156109435760009261090e575b6020985060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e6108378161137e565b60c0518152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519161088d8361130f565b82526020820190608051825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108ed578480610233888751601f1984830301606085015261112f565b9091946020610100826109036001948a516112bc565b0196019291016108cd565b91506020883d60201161093b575b816109296020938361139a565b810103126101e65760209751916107f4565b3d915061091c565b6040513d6000823e3d90fd5b60209061095a6121d6565b82828801015201610734565b909a506020813d602011610992575b816109826020938361139a565b810103126101e65751998f6106a3565b3d9150610975565b634e487b7160e01b600052601160045260246000fd5b6020813d6020116109db575b816109c96020938361139a565b810103126101e6575160a05287610626565b3d91506109bc565b90506020813d602011610a0d575b816109fe6020938361139a565b810103126101e65751866105e0565b3d91506109f1565b90506020813d602011610a3f575b81610a306020938361139a565b810103126101e65751856105a5565b3d9150610a23565b9091506020813d602011610a73575b81610a636020938361139a565b810103126101e657519083610555565b3d9150610a56565b60621960443536030160248260051b60443501013512156101e657610abd8487610ab6366024808760051b604435010135604435010161141d565b8587612814565b610ac982608051611655565b52610ad681608051611655565b50600019811461099a576001016104fc565b602090610af36127d6565b8282608051010152016104f0565b90506020813d602011610b3b575b81610b1c6020938361139a565b810103126101e657516001600160a01b03811681036101e657856104b2565b3d9150610b0f565b346101e65760603660031901126101e657610b5c610fc2565b610b64610fd8565b90610b6d610fee565b610b75612122565b50610b7f82611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561094357600093610f8e575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561094357600094610f5a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561094357600091610f28575b50828281031161099a57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610ef4575b5060206040519e8f90610cd28261132a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610d17846115d9565b93610d25604051958661139a565b808552610d34601f19916115d9565b0160005b818110610edd57505060005b60a0860151805160ff83161015610d925790610d7288610d6b610d8d9460ff851690611655565b51876125ba565b610d7f60ff831688611655565b5261078960ff821687611655565b610d44565b610dea8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561094357600092610ea7575b610233995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610e4d8261137e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061112f565b91506020893d602011610ed5575b81610ec26020938361139a565b810103126101e657610233985191610e06565b3d9150610eb5565b602090610ee86121d6565b82828901015201610d38565b909a506020813d602011610f20575b81610f106020938361139a565b810103126101e657519938610cc0565b3d9150610f03565b90506020813d602011610f52575b81610f436020938361139a565b810103126101e6575188610c43565b3d9150610f36565b9093506020813d602011610f86575b81610f766020938361139a565b810103126101e657519286610bfd565b3d9150610f69565b9092506020813d602011610fba575b81610faa6020938361139a565b810103126101e657519185610bbf565b3d9150610f9d565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b8381106110435750506000910152565b8181015183820152602001611033565b9060209161106c81518092818552858086019101611030565b601f01601f1916010190565b9061111660018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526110ca60a08501516101c08060a0870152850190611053565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611053565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c0810151916111a16101609384610280880152610320870190611053565b9060e0830151166102a0860152610100808301516102c08701526111d961012092838501516101bf19898303016102e08a0152611053565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061128d5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806112ac8f93600194601f1987830301885251611078565b9e0193019301919493929061123e565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ed826113bb565b926113fb604051948561139a565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261147a92016113d6565b910152565b35906001600160a01b03821682036101e657565b9061151a60018060a01b0380845116835260208401516020840152604084015160408401526114d16060850151610160806060870152850190611053565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611053565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e65780516115aa816113bb565b926115b8604051948561139a565b818452602082840101116101e6576115d69160208085019101611030565b90565b6001600160401b03811161035c5760051b60200190565b604051906115fd8261132a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff811461099a5760010190565b80518210156116695760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e1338090806000190482118115151661099a570290565b60e05260006101606040516116ac81611346565b6040516116b881611362565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa8015610943576000610120526120e6575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa918215610943576000926120aa575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156109435760009261206e575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156109435760009361203a575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa90811561094357600091612008575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa94851561094357600095611fd4575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa91821561094357600092611fa0575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa94851561094357600095611f6c575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa98891561094357600099611f38575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa93841561094357600094611f04575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561094357600093611ed0575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa94851561094357600095611e04575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa801561094357600061010052611dc8575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156109435760009c611d8c575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561094357600094611d6f575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561094357600061014052611d3b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561094357600092611d16575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561094357600095611ce2575b506040516101a08181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa9061018091808352156109435760009151611caa575b611b206040518061016052611362565b60018060a01b0316610160515260206101605101526101405160406101605101526060610160510152608061016051015260018060a01b031660a061016051015260c061016051015260e0610160510152611b8060ff61012051166115d9565b97611b8e604051998a61139a565b60ff61012051168952601f19611ba960ff61012051166115d9565b0160005b818110611c9257505060005b60ff610120511660ff82161015611bfa5780611bda611bf59260e051612254565b611be760ff83168d611655565b5261078960ff82168c611655565b611bb9565b50919395979092949698611c246001600160401b03611c1d81610100511661167f565b921661167f565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c4e8c611346565b610160518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611ca06115f0565b9201015201611bad565b905060203d602011611cdb575b611cc4816101a05161139a565b60206101a0518092810103126101e6575190611b10565b503d611cb7565b9094506020813d602011611d0e575b81611cfe6020938361139a565b810103126101e657519338611ac1565b3d9150611cf1565b611d349192503d806000833e611d2c818361139a565b810190611578565b9038611a81565b6020813d602011611d67575b81611d546020938361139a565b810103126101e657516101405238611a51565b3d9150611d47565b611d859194503d806000833e611d2c818361139a565b9238611a20565b909b506020813d602011611dc0575b81611da86020938361139a565b810103126101e657611db99061154a565b9a386119f0565b3d9150611d9b565b6020813d602011611dfc575b81611de16020938361139a565b810103126101e657611df29061154a565b61010052386119ba565b3d9150611dd4565b909450610100813d61010011611ec8575b81611e23610100938361139a565b810103126101e65760405190611e3882611362565b611e418161154a565b8252611e4f6020820161154a565b6020830152611e606040820161154a565b6040830152611e716060820161154a565b6060830152611e826080820161155e565b6080830152611e9360a0820161155e565b60a083015260c081015164ffffffffff811681036101e65760c0830152611ebc9060e001611528565b60e0820152933861197c565b3d9150611e15565b9092506020813d602011611efc575b81611eec6020938361139a565b810103126101e65751913861194a565b3d9150611edf565b9093506020813d602011611f30575b81611f206020938361139a565b810103126101e657519238611919565b3d9150611f13565b9098506020813d602011611f64575b81611f546020938361139a565b810103126101e6575197386118e8565b3d9150611f47565b9094506020813d602011611f98575b81611f886020938361139a565b810103126101e6575193386118b7565b3d9150611f7b565b9091506020813d602011611fcc575b81611fbc6020938361139a565b810103126101e657519038611886565b3d9150611faf565b9094506020813d602011612000575b81611ff06020938361139a565b810103126101e657519338611855565b3d9150611fe3565b90506020813d602011612032575b816120236020938361139a565b810103126101e6575138611824565b3d9150612016565b9092506020813d602011612066575b816120566020938361139a565b810103126101e6575191386117ef565b3d9150612049565b9091506020813d6020116120a2575b8161208a6020938361139a565b810103126101e65761209b90611536565b90386117be565b3d915061207d565b9091506020813d6020116120de575b816120c66020938361139a565b810103126101e6576120d790611536565b903861178d565b3d91506120b9565b6020813d60201161211a575b816120ff6020938361139a565b810103126101e65761211090611528565b610120523861175c565b3d91506120f2565b6040519061212f8261137e565b6040516101a08361213f8361132a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b604051906121e38261137e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b9061225d6115f0565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561246357600093612501575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124f6576000926124c6575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561243957908c979695949392916000956124ab575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa9889156124a057908c9160009a61246e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156124635760009e612444575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124395760009d612407575b5082519d8e6123d58161132a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311612432575b61241e818361139a565b8101031261242f5750519b386123c7565b80fd5b503d612414565b83513d6000823e3d90fd5b61245b908493929f3d8091833e611d2c818361139a565b9d9091612397565b85513d6000823e3d90fd5b9150988282813d8311612499575b612486818361139a565b8101031261242f57508b90519838612358565b503d61247c565b84513d6000823e3d90fd5b6124bf91953d8091833e611d2c818361139a565b9338612324565b90918582813d83116124ef575b6124dd818361139a565b8101031261242f5750519060046122e1565b503d6124d3565b50513d6000823e3d90fd5b90928382813d83116125b3575b612518818361139a565b8101031261242f57506125a760e086519261253284611362565b61253b81611528565b845261254960208201611536565b6020850152612559888201611536565b888501526125696060820161154a565b606085015261257a6080820161154a565b608085015261258b60a0820161154a565b60a085015261259c60c0820161154a565b60c085015201612240565b60e0820152913861229e565b503d61250e565b91906125c46121d6565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa918215610943576000926127a1575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561094357600091612767575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109435760009d612733575b50604051809e6126df8261137e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161275f575b8161274e6020938361139a565b8101031261242f5750519b386126d0565b3d9150612741565b906020823d602011612799575b816127816020938361139a565b8101031261242f575061279390612240565b3861264f565b3d9150612774565b90916020823d6020116127ce575b816127bc6020938361139a565b8101031261242f57505190602061260b565b3d91506127af565b604051906127e382611362565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946128216127d6565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b6d578a918a91600098612b27575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561243957600092612af8575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa9485156124a057600095612ac4575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561246357600097612a90575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f1978815612463578c8b9c9d9e60009a612a43575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a385760009b612a09575b5091836129959c9d9e9281809501519388519e8f9586948593631fc58c3360e31b85528401526024830190611053565b0392165afa988915612439576000996129da575b508251996129b68b611362565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d8311612a02575b6129f1818361139a565b8101031261242f57505197386129a9565b503d6129e7565b909a8482813d8311612a31575b612a20818361139a565b8101031261242f5750519983612965565b503d612a16565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a89575b612a67818361139a565b8101031261242f5750918c97959391858c60009c9b999795519a91509b61293d565b503d612a5d565b969c8381813d8311612abd575b612aa7818361139a565b81010312612ab9578c9d50519661290a565b8d80fd5b503d612a9d565b949b8281813d8311612af1575b612adb818361139a565b81010312612aed578b9c5051946128db565b8c80fd5b503d612ad1565b90918282813d8311612b20575b612b0f818361139a565b8101031261242f57505190386128ad565b503d612b05565b8093508480929993503d8311612b66575b612b42818361139a565b8101031261242f5781518015150361242f5750602001519489908990612899612865565b503d612b38565b82513d6000823e3d90fdfea264697066735822122022d390f589dc4d3beacef35e29ed05e0724e9833a837be17a0ed8a259eec002664736f6c63430008100033", + "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;2283:20:2;;1583:1980;;;;-1:-1:-1;;;;;1583:1980:2;;2283:20;;;;;;;1583:1980;2283:20;;;1583:1980;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::i;:::-;;;;;;;;;2425:10;;1583:1980;2437:15;1583:1980;;;;;2437:15;;;;1583:1980;;-1:-1:-1;;;2616:33:2;;-1:-1:-1;;;;;1583:1980:2;;;;2616:33;;1583:1980;;;;;;;;;;;;;;;;2616:33;1583:1980;-1:-1:-1;;;;;1583:1980:2;;2616:33;;;;;;;1583:1980;2616:33;;;2420:136;1583:1980;;;:::i;:::-;;8386:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8435:24:1;;1583:1980:2;;;;;;;;;;;;;;8435:24:1;;;;;;;1583:1980:2;8435:24:1;;;2420:136:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8495:30:1;;1583:1980:2;;;;;;;;;;;8495:30:1;;;;;;;1583:1980:2;8495:30:1;;;2420:136:2;-1:-1:-1;8622:18:1;;1583:1980:2;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8669:70:1;;1583:1980:2;;;;;;;;;;;;;;;;;8669:70:1;;;;;;1583:1980:2;;8669:70:1;;;2420:136:2;1583:1980;;;;;;;;8819:18:1;;;;:25;1583:1980:2;8819:25:1;;;8862:27;1583:1980:2;8862:27:1;;1583:1980:2;;8908:28:1;;1583:1980:2;8950:23:1;1583:1980:2;8950:23:1;;;1583:1980:2;;;;;;;8992:28:1;;1583:1980:2;;9035:24:1;;;;1583:1980:2;9083:33:1;1583:1980:2;9083:33:1;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9139:54:1;;1583:1980:2;;;;;;;9139:54:1;;1583:1980:2;9139:54:1;;;;;;;1583:1980:2;9139:54:1;;;2420:136:2;1583:1980;;;;;9035:24:1;1583:1980:2;;:::i;:::-;9035:24:1;1583:1980:2;;;;;9035:24:1;8577:623;;1583:1980:2;;;9035:24:1;8577:623;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;9035:24:1;8577:623;;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;8577:623:1;9035:24;8577:623;;1583:1980:2;8577:623:1;9035:24;8577:623;;1583:1980:2;8577:623:1;9035:24;8577:623;;1583:1980:2;;9302:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1583:1980:2;9402:3:1;1583:1980:2;9302:25:1;;9368;1583:1980:2;;;;;9364:36:1;;;;1583:1980:2;9427:71:1;1583:1980:2;9460:28:1;9402:3;1583:1980:2;;;;9460:28:1;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;1583:1980:2;;;9415:83:1;;:::i;:::-;;;1583:1980:2;;;9415:83:1;;:::i;:::-;;9402:3;:::i;:::-;9351:11;;9364:36;-1:-1:-1;;1583:1980:2;9610:26:1;;;1583:1980:2;;9671:32:1;;;1583:1980:2;;9738:32:1;;1583:1980:2;;9791:18:1;;1583:1980:2;;;-1:-1:-1;;;9836:32:1;;-1:-1:-1;;;;;1583:1980:2;;;;9836:32:1;;1583:1980:2;-1:-1:-1;1583:1980:2;;;;;;;;;;;;9364:36:1;;;1583:1980:2;;;;;;;;9836:32:1;;;;;;;1583:1980:2;9836:32:1;;;9346:159;1583:1980:2;9921:16:1;;9035:24;9921:16;;1583:1980:2;;;;;;;;9973:15:1;10011:20;1583:1980:2;10011:20:1;;1583:1980:2;10063:29:1;8577:623;10063:29;;1583:1980:2;10115:20:1;8577:623;10115:20;;1583:1980:2;10167:29:1;1583:1980:2;8577:623:1;10167:29;;1583:1980:2;10226:27:1;;1583:1980:2;;;;;;;;;:::i;:::-;9035:24:1;1583:1980:2;;;9524:738:1;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;9035:24:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;9524:738:1;;;1583:1980:2;9524:738:1;;;1583:1980:2;;;;;;;:::i;:::-;;;;2575:173;;1583:1980;;;;;;2575:173;;1583:1980;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8577:623:1;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;9836:32:1;;;1583:1980:2;9836:32:1;;1583:1980:2;9836:32:1;;;;;;1583:1980:2;9836:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;1583:1980:2;9139:54:1;;1583:1980:2;9139:54:1;;;;;;1583:1980:2;9139:54:1;;;:::i;:::-;;;1583:1980:2;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;1583:1980:2;;;;;;;;;;;;8669:70:1;1583:1980:2;8669:70:1;;1583:1980:2;8669:70:1;;;;;;1583:1980:2;8669:70:1;;;:::i;:::-;;;1583:1980:2;;;;;;8669:70:1;;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;1583:1980:2;8495:30:1;;1583:1980:2;8495:30:1;;;;;;1583:1980:2;8495:30:1;;;:::i;:::-;;;1583:1980:2;;;;;8495:30:1;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;1583:1980:2;8435:24:1;;1583:1980:2;8435:24:1;;;;;;1583:1980:2;8435:24:1;;;:::i;:::-;;;1583:1980:2;;;;;8435:24:1;;;;;;-1:-1:-1;8435:24:1;;2616:33:2;;;;1583:1980;2616:33;;1583:1980;2616:33;;;;;;1583:1980;2616:33;;;:::i;:::-;;;1583:1980;;;;;2616:33;;;;;;;-1:-1:-1;2616:33:2;;2454:3;1583:1980;;;;;;;;;;;;;;;;;;;;2479:70;1583:1980;;;;;;;;;;;;;;;;;;;:::i;:::-;2479:70;;;:::i;:::-;2467:82;;1583:1980;2467:82;;:::i;:::-;;;;1583:1980;2467:82;;:::i;:::-;-1:-1:-1;;;1583:1980:2;;;;;;2425:10;;1583:1980;;;;;:::i;:::-;;;;;;;;;;;2283:20;;;1583:1980;2283:20;;1583:1980;2283:20;;;;;;1583:1980;2283:20;;;:::i;:::-;;;1583:1980;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;2283:20;;;;;;-1:-1:-1;2283:20:2;;1583:1980;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8386:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8435:24:1;;1583:1980:2;;;;;;;8435:24:1;;1583:1980:2;;;;;;;;8435:24:1;;;;;;;1583:1980:2;8435:24:1;;;1583:1980:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8495:30:1;;1583:1980:2;;;;8435:24:1;;1583:1980:2;;;;;;;;8495:30:1;;;;;;;1583:1980:2;8495:30:1;;;1583:1980:2;-1:-1:-1;8622:18:1;;1583:1980:2;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8669:70:1;;1583:1980:2;;;;;;;;;;;;;8435:24:1;1583:1980:2;;;;8669:70:1;;;;;;;1583:1980:2;8669:70:1;;;1583:1980:2;;;;;;;;;8819:18:1;;;;:25;1583:1980:2;8819:25:1;;;8862:27;1583:1980:2;8862:27:1;;1583:1980:2;;8908:28:1;;1583:1980:2;8950:23:1;;;;;1583:1980:2;;;;;;;8992:28:1;;1583:1980:2;;9035:24:1;;;;1583:1980:2;9083:33:1;8435:24;9083:33;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9139:54:1;;1583:1980:2;;;;;;;9139:54:1;;1583:1980:2;9139:54:1;;;;;;;1583:1980:2;9139:54:1;;;1583:1980:2;;8435:24:1;1583:1980:2;;;;;;;;:::i;:::-;;;8577:623:1;1583:1980:2;;;8577:623:1;;1583:1980:2;;8577:623:1;;1583:1980:2;8950:23:1;8577:623;;1583:1980:2;;8577:623:1;;1583:1980:2;9035:24:1;8577:623;;1583:1980:2;;8577:623:1;;1583:1980:2;8577:623:1;;;1583:1980:2;8577:623:1;;;1583:1980:2;8577:623:1;;;1583:1980:2;;9302:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1583:1980:2;9402:3:1;1583:1980:2;9302:25:1;;9368;1583:1980:2;;;;;9364:36:1;;;;1583:1980:2;9427:71:1;1583:1980:2;9460:28:1;9402:3;1583:1980:2;;;;9460:28:1;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;1583:1980:2;;;9415:83:1;;:::i;:::-;;;1583:1980:2;;;9415:83:1;;:::i;9402:3::-;9351:11;;9364:36;9836:32;9364:36;;;;;;8435:24;9610:26;;1583:1980:2;9671:32:1;1583:1980:2;9671:32:1;;1583:1980:2;9738:32:1;8435:24;1583:1980:2;9738:32:1;;1583:1980:2;9791:18:1;8950:23;9791:18;;1583:1980:2;;;;;;;;;;;;9836:32:1;;;1583:1980:2;9836:32:1;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;9836:32:1;;;-1:-1:-1;;;;;1583:1980:2;9836:32:1;;;;;;;1583:1980:2;9836:32:1;;;9346:159;1583:1980:2;9921:16:1;;9035:24;9921:16;;1583:1980:2;;;;;;;;9973:15:1;10011:20;1583:1980:2;10011:20:1;;1583:1980:2;10063:29:1;8577:623;10063:29;;1583:1980:2;10115:20:1;8577:623;10115:20;;1583:1980:2;10167:29:1;1583:1980:2;8577:623:1;10167:29;;1583:1980:2;10226:27:1;;1583:1980:2;;8435:24:1;1583:1980:2;;;;;;;;:::i;:::-;;;9524:738:1;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;8950:23:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;9035:24:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;9524:738:1;;;1583:1980:2;9524:738:1;;;1583:1980:2;;;;;;8435:24:1;1583:1980:2;;8435:24:1;1583:1980:2;;;;:::i;9836:32:1:-;;;8435:24;9836:32;;8435:24;9836:32;;;;;;8435:24;9836:32;;;:::i;:::-;;;1583:1980:2;;;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;1583:1980:2;8435:24:1;1583:1980:2;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;8435:24;9139:54;;8435:24;9139:54;;;;;;8435:24;9139:54;;;:::i;:::-;;;1583:1980:2;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;8669:70;;;8435:24;8669:70;;8435:24;8669:70;;;;;;8435:24;8669:70;;;:::i;:::-;;;1583:1980:2;;;;;8669:70:1;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;;8435:24;8495:30;;8435:24;8495:30;;;;;;8435:24;8495:30;;;:::i;:::-;;;1583:1980:2;;;;;8495:30:1;;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;8435:24:1;;;;;;;-1:-1:-1;8435:24:1;;1583:1980:2;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18:1;;1583:1980:2;;;;4218:18:1;;;;;;;;;;;:::o;6180:2007::-;;;-1:-1:-1;1583:1980:2;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;6271:17:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6271:17:1;;;;;;-1:-1:-1;1583:1980:2;6271:17:1;;;6180:2007;1583:1980:2;;;;;;;6314:17:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;;6180:2007;1583:1980:2;;;;;;;6366:26:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;;6180:2007;1583:1980:2;;;;;;;6415:21:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6468:26:1;;6180:2007;6271:15;1583:1980:2;;;;6271:17:1;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;6468:26:1;;;;;;;-1:-1:-1;6468:26:1;;;6180:2007;1583:1980:2;;;;;;;6531:31:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;;6180:2007;1583:1980:2;;;;;;;6599:31:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;;6180:2007;1583:1980:2;;;;;;;6661:25:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;;6180:2007;1583:1980:2;;;;;;;6711:22:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;;6180:2007;1583:1980:2;;;;;;;6758:19:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;;6180:2007;1583:1980:2;;;;;;;6802:19:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;;6180:2007;1583:1980:2;;;;;;;6866:19:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6918:32:1;;6271:17;6918:32;;1583:1980:2;;;6180:2007:1;6271:15;1583:1980:2;;;;;;;;-1:-1:-1;;;;;1583:1980:2;6918:32:1;;;;;;-1:-1:-1;1583:1980:2;6918:32:1;;;6180:2007;1583:1980:2;;;;;;;6983:32:1;;6271:17;6983:32;;1583:1980:2;;;;;;;;;;6180:2007:1;6271:15;1583:1980:2;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7105:25:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6271:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7105:25:1;;;;;;;-1:-1:-1;7105:25:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7148:27:1;;1583:1980:2;;6271:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7148:27:1;;;;;;-1:-1:-1;1583:1980:2;7148:27:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7217:23:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6271:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7217:23:1;;;;;;;-1:-1:-1;7217:23:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7292:34:1;;-1:-1:-1;;;;;1583:1980:2;;;6271:17:1;7292:34;;1583:1980:2;;6271:15:1;1583:1980:2;;;;;;;;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;;6180:2007;-1:-1:-1;1583:1980:2;;7350:42:1;;;;-1:-1:-1;;;7350:42:1;;;1583:1980:2;6271:15:1;7350:42;;-1:-1:-1;;;;;1583:1980:2;;;6271:17:1;7350:42;;;1583:1980:2;7350:42:1;;1583:1980:2;;;;7350:42:1;;1583:1980:2;;7350:42:1;;;;;;;;;;;-1:-1:-1;7350:42:1;;;;6180:2007;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;;;;7051:348:1;;1583:1980:2;;;;;7051:348:1;;1583:1980:2;;;7051:348:1;;1583:1980:2;;;7051:348:1;;1583:1980:2;;;;;;;;;7051:348:1;;1583:1980:2;;;7051:348:1;;1583:1980:2;6180:2007:1;1583:1980:2;7051:348:1;;1583:1980:2;;;;6254:34:1;1583:1980:2;;:::i;:::-;;;;;;;;:::i;:::-;;;6254:34:1;1583:1980:2;;;;;;;;6254:34:1;1583:1980:2;;:::i;:::-;;-1:-1:-1;1583:1980:2;;;;;;7483:11:1;;-1:-1:-1;7511:3:1;1583:1980:2;;6254:34:1;1583:1980:2;;;;7496:13:1;;;;7536:24;;7511:3;7536:24;6180:2007;7536:24;;:::i;:::-;7524:36;1583:1980:2;;;7524:36:1;;:::i;:::-;;;1583:1980:2;;;7524:36:1;;:::i;7511:3::-;7483:11;;7496:13;;;;;;;;;;;7901:38;-1:-1:-1;;;;;7810:38:1;6891:59;1583:1980:2;6891:59:1;1583:1980:2;7810:38:1;:::i;:::-;1583:1980:2;;7901:38:1;:::i;:::-;8005:27;1583:1980:2;;8005:27:1;1583:1980:2;8005:27:1;;4218:18;1583:1980:2;8098:27:1;;4218:18;1583:1980:2;;;;;;;;:::i;:::-;;;;;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;6180:2007:1;7586:596;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;6180:2007:1;:::o;1583:1980:2:-;;;;;;;;:::i;:::-;;;;;;;;7350:42:1;;;1583:1980:2;7350:42:1;1583:1980:2;7350:42:1;;;;;;;;;:::i;:::-;1583:1980:2;7350:42:1;1583:1980:2;7350:42:1;;;;1583:1980:2;;;;;7350:42:1;;;;;;;;7292:34;;;;1583:1980:2;7292:34:1;;1583:1980:2;7292:34:1;;;;;;1583:1980:2;7292:34:1;;;:::i;:::-;;;1583:1980:2;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7148:27;1583:1980:2;7148:27:1;;1583:1980:2;7148:27:1;;;;;;1583:1980:2;7148:27:1;;;:::i;:::-;;;1583:1980:2;;;;;;7148:27:1;;;;;;;-1:-1:-1;7148:27:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;;;;:::i;:::-;;;;;6983:32;;;;1583:1980:2;6983:32:1;;1583:1980:2;6983:32:1;;;;;;1583:1980:2;6983:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;6918;1583:1980:2;6918:32:1;;1583:1980:2;6918:32:1;;;;;;1583:1980:2;6918:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6918:32:1;;;;;;;-1:-1:-1;6918:32:1;;6866:19;;;;1583:1980:2;6866:19:1;;1583:1980:2;6866:19:1;;;;;;1583:1980:2;6866:19:1;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1583:1980:2;;:::i;:::-;6180:2007:1;1583:1980:2;;;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;6802;;;;1583:1980:2;6802:19:1;;1583:1980:2;6802:19:1;;;;;;1583:1980:2;6802:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;6758;;;;1583:1980:2;6758:19:1;;1583:1980:2;6758:19:1;;;;;;1583:1980:2;6758:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;6711:22;;;;1583:1980:2;6711:22:1;;1583:1980:2;6711:22:1;;;;;;1583:1980:2;6711:22:1;;;:::i;:::-;;;1583:1980:2;;;;;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;6661:25;;;;1583:1980:2;6661:25:1;;1583:1980:2;6661:25:1;;;;;;1583:1980:2;6661:25:1;;;:::i;:::-;;;1583:1980:2;;;;;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;6599:31;;;;1583:1980:2;6599:31:1;;1583:1980:2;6599:31:1;;;;;;1583:1980:2;6599:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;6531;;;;1583:1980:2;6531:31:1;;1583:1980:2;6531:31:1;;;;;;1583:1980:2;6531:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;6468:26;;;1583:1980:2;6468:26:1;;1583:1980:2;6468:26:1;;;;;;1583:1980:2;6468:26:1;;;:::i;:::-;;;1583:1980:2;;;;;6468:26:1;;;;;;-1:-1:-1;6468:26:1;;6415:21;;;;1583:1980:2;6415:21:1;;1583:1980:2;6415:21:1;;;;;;1583:1980:2;6415:21:1;;;:::i;:::-;;;1583:1980:2;;;;;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;6366:26;;;;1583:1980:2;6366:26:1;;1583:1980:2;6366:26:1;;;;;;1583:1980:2;6366:26:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;6314:17;;;;1583:1980:2;6314:17:1;;1583:1980:2;6314:17:1;;;;;;1583:1980:2;6314:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;6271;1583:1980:2;6271:17:1;;1583:1980:2;6271:17:1;;;;;;1583:1980:2;6271:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6271:17:1;;;;;;;-1:-1:-1;6271:17:1;;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;10271:782:1:-;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10407:25:1;;1583:1980:2;;;;10407:25:1;;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;;;;;10407:25:1;;1583:1980:2;;;;10407:25:1;;;;;;;-1:-1:-1;10407:25:1;;;10271:782;1583:1980:2;;10495:15:1;;;;1583:1980:2;;;;;;-1:-1:-1;;;;;10538:32:1;10407:25;10538:32;;;;1583:1980:2;;;;;;;;;;;;;;10590:33:1;;;;;;;;;-1:-1:-1;10590:33:1;;;10271:782;10660:35;10407:25;10660:35;;1583:1980:2;10660:35:1;;1583:1980:2;;10724:27:1;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;10767:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10767:29:1;;;10271:782;10828:19;;;;1583:1980:2;;;;;;;;;;;;;;;10813:35:1;;10407:25;10813:35;;1583:1980:2;10813:35:1;;;;;;;;;;-1:-1:-1;10813:35:1;;;10271:782;1583:1980:2;;;10909:19:1;1583:1980:2;10909:19:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;10946:31:1;;;;10407:25;10946:31;-1:-1:-1;10946:31:1;;;;;;;-1:-1:-1;10946:31:1;;;10271:782;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;11000:39:1;;1583:1980:2;;10407:25:1;11000:39;;1583:1980:2;;;;;;;11000:39:1;;1583:1980:2;11000:39:1;;;;;;;-1:-1:-1;11000:39:1;;;10271:782;1583:1980:2;;;;;;;;:::i;:::-;;10452:596:1;;1583:1980:2;10452:596:1;;1583:1980:2;10452:596:1;;;1583:1980:2;10538:32:1;10452:596;;1583:1980:2;;10452:596:1;;1583:1980:2;10724:27:1;10452:596;;1583:1980:2;;10452:596:1;;1583:1980:2;10452:596:1;;1583:1980:2;10452:596:1;;;1583:1980:2;10452:596:1;;;1583:1980:2;10271:782:1;:::o;11000:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;11000:39:1;;;;1583:1980:2;;;11000:39:1;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10946:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10813:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;10813:35:1;;;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10767:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10590:33;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;10407:25:1;10590:33;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10407:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10407:25:1;;;;;;;;;11057:925;;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11357:63:1;;-1:-1:-1;;;;;1583:1980:2;;;11357:63:1;;;1583:1980:2;;;;;;;;;;;;;;;11357:63:1;1583:1980:2;;;;11357:63:1;;;;;;;-1:-1:-1;11357:63:1;;;11057:925;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11439:57:1;;-1:-1:-1;;;;;1583:1980:2;;;11357:63:1;11439:57;;1583:1980:2;;;;;;;;;11357:63:1;;1583:1980:2;;;;;;11439:57:1;;;;;;;-1:-1:-1;11439:57:1;;;11057:925;-1:-1:-1;11357:63:1;11524:22;;1583:1980:2;;11566:14:1;;;1583:1980:2;11617:31:1;;;1583:1980:2;;11677:23:1;;1583:1980:2;11716:10:1;;;;11743:11;;;1583:1980:2;;11775:15:1;;1583:1980:2;11811:15:1;;;1583:1980:2;11844:12:1;;;;11879:17;;;1583:1980:2;;;;;-1:-1:-1;;;11921:47:1;;-1:-1:-1;;;;;1583:1980:2;;;11357:63:1;11921:47;;1583:1980:2;;11844:12:1;;1583:1980:2;;;;;;;;;;11716:10:1;;1583:1980:2;;;;;11921:47:1;;1583:1980:2;11921:47:1;11357:63;11921:47;;;;;;;-1:-1:-1;11921:47:1;;;11057:925;1583:1980:2;;;;;;;;:::i;:::-;;;11357:63:1;11256:721;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;11256:721:1;;1583:1980:2;11716:10:1;11256:721;;1583:1980:2;11617:31:1;11256:721;;1583:1980:2;;11256:721:1;;1583:1980:2;11743:11:1;11256:721;;1583:1980:2;;11256:721:1;;1583:1980:2;11811:15:1;11256:721;;1583:1980:2;11844:12:1;11256:721;;1583:1980:2;11879:17:1;11256:721;;1583:1980:2;11256:721:1;;;1583:1980:2;11256:721:1;;;1583:1980:2;11256:721:1;;;1583:1980:2;11057:925:1;:::o;11921:47::-;;;11357:63;11921:47;;11357:63;11921:47;;;;;;11357:63;11921:47;;;:::i;:::-;;;1583:1980:2;;;;;;11921:47:1;;;;;;;-1:-1:-1;11921:47:1;;11439:57;;11357:63;11439:57;;11357:63;11439:57;;;;;;11357:63;11439:57;;;:::i;:::-;;;1583:1980:2;;;;;;;;:::i;:::-;11439:57:1;;;;;;-1:-1:-1;11439:57:1;;11357:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;11357:63:1;;;;;;-1:-1:-1;11357:63:1;;1583:1980:2;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2757:804::-;;;;;;1583:1980;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:36;;;;;;;1583:1980;;3056:36;;;;;;;1583:1980;;;;-1:-1:-1;3056:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3181:34:2;;-1:-1:-1;;;;;1583:1980:2;;;3181:34;;;1583:1980;;;;;;;;;;;;;;;;;;;;;;3181:34;;;;;;;;;;;-1:-1:-1;3181:34:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3234:25:2;;1583:1980;;;3234:25;;;1583:1980;;;;3234:25;1583:1980;;;3234:25;;;;;;;;-1:-1:-1;3234:25:2;;;2757:804;1583:1980;;-1:-1:-1;;;3288:35:2;;;;;1583:1980;;;;-1:-1:-1;3288:35:2;1583:1980;3288:35;1583:1980;3288:35;1583:1980;3288:35;-1:-1:-1;3288:35:2;;;;;;;-1:-1:-1;3288:35:2;;;2757:804;1583:1980;;;;;;;;;;3348:36;;;1583:1980;3348:36;;;;;1583:1980;3348:36;-1:-1:-1;3348:36:2;;;;;;;;;;;;-1:-1:-1;3348:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3452:28:2;;1583:1980;;;;;;;-1:-1:-1;;3452:28:2;;;;;;;-1:-1:-1;3452:28:2;;;2757:804;3515:31;;;1583:1980;3515:31;;;;;;;;;1583:1980;;;;;;;;;;;;;3497:50;;;;1583:1980;;;;;;:::i;:::-;3497:50;1583:1980;;3497:50;;;;;;;-1:-1:-1;3497:50:2;;;2757:804;1583:1980;;;;;;;:::i;:::-;;;3112:444;;1583:1980;3112:444;;1583:1980;3112:444;;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;2757:804;:::o;3497:50::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3497:50;;;;;;;;;3452:28;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;-1:-1:-1;1583:1980:2;;;3452:28;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;;3348:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;3348:36;;;;;;;;;;;3288:35;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3288:35;;;1583:1980;;;;3288:35;;;;;3234:25;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3234:25;;;1583:1980;;;;3234:25;;;;;3181:34;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3181:34;;;;;;;;;3056:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;3181:34;3056:36;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;", "linkReferences": {} }, "methodIdentifiers": { @@ -1062,7 +1072,7 @@ "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest\",\"name\":\"cTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest[]\",\"name\":\"cTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"}],\"internalType\":\"struct CompoundV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82\",\"dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest\",\"name\":\"cTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest[]\",\"name\":\"cTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"}],\"internalType\":\"struct CompoundV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b\",\"dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1677,6 +1687,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -2084,6 +2099,11 @@ "name": "earnAPR", "type": "uint256" }, + { + "internalType": "uint256", + "name": "nativeAssetWalletBalance", + "type": "uint256" + }, { "internalType": "uint256", "name": "totalBorrow", @@ -2142,10 +2162,10 @@ }, "sources": { "Sleuth/CometQuery.sol": { - "keccak256": "0xe87e490e99f1c879e33338640b73809debf67da3d790c575ffae46555bdf7b55", + "keccak256": "0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980", "urls": [ - "bzz-raw://31c5c005ae1dbbae83bfcc47e8409c6749e558d59d3c50e31716d2dd377cfa82", - "dweb:/ipfs/QmQiGVHK2FQ6gfVMdpEVPVFcyEoc5kHnUxmfcHMqGTCgJt" + "bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b", + "dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ" ], "license": "UNLICENSED" }, @@ -2162,35 +2182,35 @@ }, "ast": { "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 1625, + "id": 1629, "exportedSymbols": { "CToken": [ - 1347 + 1351 ], "Comet": [ 598 ], "CometQuery": [ - 1268 + 1272 ], "CompoundV2Query": [ - 1624 + 1628 ], "Comptroller": [ - 1423 + 1427 ], "ERC20": [ 630 ], "PriceOracle": [ - 1431 + 1435 ] }, "nodeType": "SourceUnit", "src": "39:3525:2", "nodes": [ { - "id": 1270, + "id": 1274, "nodeType": "PragmaDirective", "src": "39:24:2", "literals": [ @@ -2201,24 +2221,24 @@ ] }, { - "id": 1271, + "id": 1275, "nodeType": "ImportDirective", "src": "65:26:2", "absolutePath": "Sleuth/CometQuery.sol", "file": "./CometQuery.sol", "nameLocation": "-1:-1:-1", - "scope": 1625, - "sourceUnit": 1269, + "scope": 1629, + "sourceUnit": 1273, "symbolAliases": [], "unitAlias": "" }, { - "id": 1347, + "id": 1351, "nodeType": "ContractDefinition", "src": "93:723:2", "nodes": [ { - "id": 1277, + "id": 1281, "nodeType": "FunctionDefinition", "src": "114:54:2", "functionSelector": "5fe3b567", @@ -2228,47 +2248,47 @@ "name": "comptroller", "nameLocation": "123:11:2", "parameters": { - "id": 1272, + "id": 1276, "nodeType": "ParameterList", "parameters": [], "src": "134:2:2" }, "returnParameters": { - "id": 1276, + "id": 1280, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1275, + "id": 1279, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1277, + "scope": 1281, "src": "155:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" }, "typeName": { - "id": 1274, + "id": 1278, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1273, + "id": 1277, "name": "Comptroller", "nameLocations": [ "155:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, + "referencedDeclaration": 1427, "src": "155:11:2" }, - "referencedDeclaration": 1423, + "referencedDeclaration": 1427, "src": "155:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" } }, @@ -2277,13 +2297,13 @@ ], "src": "154:13:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1286, + "id": 1290, "nodeType": "FunctionDefinition", "src": "172:68:2", "functionSelector": "a9059cbb", @@ -2293,17 +2313,17 @@ "name": "transfer", "nameLocation": "181:8:2", "parameters": { - "id": 1282, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1279, + "id": 1283, "mutability": "mutable", "name": "dst", "nameLocation": "198:3:2", "nodeType": "VariableDeclaration", - "scope": 1286, + "scope": 1290, "src": "190:11:2", "stateVariable": false, "storageLocation": "default", @@ -2312,7 +2332,7 @@ "typeString": "address" }, "typeName": { - "id": 1278, + "id": 1282, "name": "address", "nodeType": "ElementaryTypeName", "src": "190:7:2", @@ -2326,12 +2346,12 @@ }, { "constant": false, - "id": 1281, + "id": 1285, "mutability": "mutable", "name": "amount", "nameLocation": "208:6:2", "nodeType": "VariableDeclaration", - "scope": 1286, + "scope": 1290, "src": "203:11:2", "stateVariable": false, "storageLocation": "default", @@ -2340,7 +2360,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1280, + "id": 1284, "name": "uint", "nodeType": "ElementaryTypeName", "src": "203:4:2", @@ -2355,17 +2375,17 @@ "src": "189:26:2" }, "returnParameters": { - "id": 1285, + "id": 1289, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1284, + "id": 1288, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1286, + "scope": 1290, "src": "234:4:2", "stateVariable": false, "storageLocation": "default", @@ -2374,7 +2394,7 @@ "typeString": "bool" }, "typeName": { - "id": 1283, + "id": 1287, "name": "bool", "nodeType": "ElementaryTypeName", "src": "234:4:2", @@ -2388,13 +2408,13 @@ ], "src": "233:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1297, + "id": 1301, "nodeType": "FunctionDefinition", "src": "244:85:2", "functionSelector": "23b872dd", @@ -2404,17 +2424,17 @@ "name": "transferFrom", "nameLocation": "253:12:2", "parameters": { - "id": 1293, + "id": 1297, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1288, + "id": 1292, "mutability": "mutable", "name": "src", "nameLocation": "274:3:2", "nodeType": "VariableDeclaration", - "scope": 1297, + "scope": 1301, "src": "266:11:2", "stateVariable": false, "storageLocation": "default", @@ -2423,7 +2443,7 @@ "typeString": "address" }, "typeName": { - "id": 1287, + "id": 1291, "name": "address", "nodeType": "ElementaryTypeName", "src": "266:7:2", @@ -2437,12 +2457,12 @@ }, { "constant": false, - "id": 1290, + "id": 1294, "mutability": "mutable", "name": "dst", "nameLocation": "287:3:2", "nodeType": "VariableDeclaration", - "scope": 1297, + "scope": 1301, "src": "279:11:2", "stateVariable": false, "storageLocation": "default", @@ -2451,7 +2471,7 @@ "typeString": "address" }, "typeName": { - "id": 1289, + "id": 1293, "name": "address", "nodeType": "ElementaryTypeName", "src": "279:7:2", @@ -2465,12 +2485,12 @@ }, { "constant": false, - "id": 1292, + "id": 1296, "mutability": "mutable", "name": "amount", "nameLocation": "297:6:2", "nodeType": "VariableDeclaration", - "scope": 1297, + "scope": 1301, "src": "292:11:2", "stateVariable": false, "storageLocation": "default", @@ -2479,7 +2499,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1291, + "id": 1295, "name": "uint", "nodeType": "ElementaryTypeName", "src": "292:4:2", @@ -2494,17 +2514,17 @@ "src": "265:39:2" }, "returnParameters": { - "id": 1296, + "id": 1300, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1295, + "id": 1299, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1297, + "scope": 1301, "src": "323:4:2", "stateVariable": false, "storageLocation": "default", @@ -2513,7 +2533,7 @@ "typeString": "bool" }, "typeName": { - "id": 1294, + "id": 1298, "name": "bool", "nodeType": "ElementaryTypeName", "src": "323:4:2", @@ -2527,13 +2547,13 @@ ], "src": "322:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1306, + "id": 1310, "nodeType": "FunctionDefinition", "src": "333:71:2", "functionSelector": "095ea7b3", @@ -2543,17 +2563,17 @@ "name": "approve", "nameLocation": "342:7:2", "parameters": { - "id": 1302, + "id": 1306, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1299, + "id": 1303, "mutability": "mutable", "name": "spender", "nameLocation": "358:7:2", "nodeType": "VariableDeclaration", - "scope": 1306, + "scope": 1310, "src": "350:15:2", "stateVariable": false, "storageLocation": "default", @@ -2562,7 +2582,7 @@ "typeString": "address" }, "typeName": { - "id": 1298, + "id": 1302, "name": "address", "nodeType": "ElementaryTypeName", "src": "350:7:2", @@ -2576,12 +2596,12 @@ }, { "constant": false, - "id": 1301, + "id": 1305, "mutability": "mutable", "name": "amount", "nameLocation": "372:6:2", "nodeType": "VariableDeclaration", - "scope": 1306, + "scope": 1310, "src": "367:11:2", "stateVariable": false, "storageLocation": "default", @@ -2590,7 +2610,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1300, + "id": 1304, "name": "uint", "nodeType": "ElementaryTypeName", "src": "367:4:2", @@ -2605,17 +2625,17 @@ "src": "349:30:2" }, "returnParameters": { - "id": 1305, + "id": 1309, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1304, + "id": 1308, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1306, + "scope": 1310, "src": "398:4:2", "stateVariable": false, "storageLocation": "default", @@ -2624,7 +2644,7 @@ "typeString": "bool" }, "typeName": { - "id": 1303, + "id": 1307, "name": "bool", "nodeType": "ElementaryTypeName", "src": "398:4:2", @@ -2638,13 +2658,13 @@ ], "src": "397:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1315, + "id": 1319, "nodeType": "FunctionDefinition", "src": "408:80:2", "functionSelector": "dd62ed3e", @@ -2654,17 +2674,17 @@ "name": "allowance", "nameLocation": "417:9:2", "parameters": { - "id": 1311, + "id": 1315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1308, + "id": 1312, "mutability": "mutable", "name": "owner", "nameLocation": "435:5:2", "nodeType": "VariableDeclaration", - "scope": 1315, + "scope": 1319, "src": "427:13:2", "stateVariable": false, "storageLocation": "default", @@ -2673,7 +2693,7 @@ "typeString": "address" }, "typeName": { - "id": 1307, + "id": 1311, "name": "address", "nodeType": "ElementaryTypeName", "src": "427:7:2", @@ -2687,12 +2707,12 @@ }, { "constant": false, - "id": 1310, + "id": 1314, "mutability": "mutable", "name": "spender", "nameLocation": "450:7:2", "nodeType": "VariableDeclaration", - "scope": 1315, + "scope": 1319, "src": "442:15:2", "stateVariable": false, "storageLocation": "default", @@ -2701,7 +2721,7 @@ "typeString": "address" }, "typeName": { - "id": 1309, + "id": 1313, "name": "address", "nodeType": "ElementaryTypeName", "src": "442:7:2", @@ -2717,17 +2737,17 @@ "src": "426:32:2" }, "returnParameters": { - "id": 1314, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1313, + "id": 1317, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1315, + "scope": 1319, "src": "482:4:2", "stateVariable": false, "storageLocation": "default", @@ -2736,7 +2756,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1312, + "id": 1316, "name": "uint", "nodeType": "ElementaryTypeName", "src": "482:4:2", @@ -2750,13 +2770,13 @@ ], "src": "481:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1322, + "id": 1326, "nodeType": "FunctionDefinition", "src": "492:63:2", "functionSelector": "70a08231", @@ -2766,17 +2786,17 @@ "name": "balanceOf", "nameLocation": "501:9:2", "parameters": { - "id": 1318, + "id": 1322, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1317, + "id": 1321, "mutability": "mutable", "name": "owner", "nameLocation": "519:5:2", "nodeType": "VariableDeclaration", - "scope": 1322, + "scope": 1326, "src": "511:13:2", "stateVariable": false, "storageLocation": "default", @@ -2785,7 +2805,7 @@ "typeString": "address" }, "typeName": { - "id": 1316, + "id": 1320, "name": "address", "nodeType": "ElementaryTypeName", "src": "511:7:2", @@ -2801,17 +2821,17 @@ "src": "510:15:2" }, "returnParameters": { - "id": 1321, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1320, + "id": 1324, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1322, + "scope": 1326, "src": "549:4:2", "stateVariable": false, "storageLocation": "default", @@ -2820,7 +2840,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1319, + "id": 1323, "name": "uint", "nodeType": "ElementaryTypeName", "src": "549:4:2", @@ -2834,13 +2854,13 @@ ], "src": "548:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1329, + "id": 1333, "nodeType": "FunctionDefinition", "src": "559:68:2", "functionSelector": "3af9e669", @@ -2850,17 +2870,17 @@ "name": "balanceOfUnderlying", "nameLocation": "568:19:2", "parameters": { - "id": 1325, + "id": 1329, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1324, + "id": 1328, "mutability": "mutable", "name": "owner", "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", - "scope": 1329, + "scope": 1333, "src": "588:13:2", "stateVariable": false, "storageLocation": "default", @@ -2869,7 +2889,7 @@ "typeString": "address" }, "typeName": { - "id": 1323, + "id": 1327, "name": "address", "nodeType": "ElementaryTypeName", "src": "588:7:2", @@ -2885,17 +2905,17 @@ "src": "587:15:2" }, "returnParameters": { - "id": 1328, + "id": 1332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1327, + "id": 1331, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1329, + "scope": 1333, "src": "621:4:2", "stateVariable": false, "storageLocation": "default", @@ -2904,7 +2924,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1326, + "id": 1330, "name": "uint", "nodeType": "ElementaryTypeName", "src": "621:4:2", @@ -2918,13 +2938,13 @@ ], "src": "620:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1336, + "id": 1340, "nodeType": "FunctionDefinition", "src": "631:71:2", "functionSelector": "17bfdfbc", @@ -2934,17 +2954,17 @@ "name": "borrowBalanceCurrent", "nameLocation": "640:20:2", "parameters": { - "id": 1332, + "id": 1336, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1331, + "id": 1335, "mutability": "mutable", "name": "account", "nameLocation": "669:7:2", "nodeType": "VariableDeclaration", - "scope": 1336, + "scope": 1340, "src": "661:15:2", "stateVariable": false, "storageLocation": "default", @@ -2953,7 +2973,7 @@ "typeString": "address" }, "typeName": { - "id": 1330, + "id": 1334, "name": "address", "nodeType": "ElementaryTypeName", "src": "661:7:2", @@ -2969,17 +2989,17 @@ "src": "660:17:2" }, "returnParameters": { - "id": 1335, + "id": 1339, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1334, + "id": 1338, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1336, + "scope": 1340, "src": "696:4:2", "stateVariable": false, "storageLocation": "default", @@ -2988,7 +3008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1333, + "id": 1337, "name": "uint", "nodeType": "ElementaryTypeName", "src": "696:4:2", @@ -3002,13 +3022,13 @@ ], "src": "695:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1341, + "id": 1345, "nodeType": "FunctionDefinition", "src": "706:55:2", "functionSelector": "bd6d894d", @@ -3018,23 +3038,23 @@ "name": "exchangeRateCurrent", "nameLocation": "715:19:2", "parameters": { - "id": 1337, + "id": 1341, "nodeType": "ParameterList", "parameters": [], "src": "734:2:2" }, "returnParameters": { - "id": 1340, + "id": 1344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1339, + "id": 1343, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1341, + "scope": 1345, "src": "755:4:2", "stateVariable": false, "storageLocation": "default", @@ -3043,7 +3063,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1338, + "id": 1342, "name": "uint", "nodeType": "ElementaryTypeName", "src": "755:4:2", @@ -3057,13 +3077,13 @@ ], "src": "754:6:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1346, + "id": 1350, "nodeType": "FunctionDefinition", "src": "765:49:2", "functionSelector": "6f307dc3", @@ -3073,23 +3093,23 @@ "name": "underlying", "nameLocation": "774:10:2", "parameters": { - "id": 1342, + "id": 1346, "nodeType": "ParameterList", "parameters": [], "src": "784:2:2" }, "returnParameters": { - "id": 1345, + "id": 1349, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1344, + "id": 1348, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1346, + "scope": 1350, "src": "805:7:2", "stateVariable": false, "storageLocation": "default", @@ -3098,7 +3118,7 @@ "typeString": "address" }, "typeName": { - "id": 1343, + "id": 1347, "name": "address", "nodeType": "ElementaryTypeName", "src": "805:7:2", @@ -3113,7 +3133,7 @@ ], "src": "804:9:2" }, - "scope": 1347, + "scope": 1351, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -3126,20 +3146,20 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 1347 + 1351 ], "name": "CToken", "nameLocation": "103:6:2", - "scope": 1625, + "scope": 1629, "usedErrors": [] }, { - "id": 1423, + "id": 1427, "nodeType": "ContractDefinition", "src": "818:668:2", "nodes": [ { - "id": 1356, + "id": 1360, "nodeType": "FunctionDefinition", "src": "844:61:2", "functionSelector": "8e8f294b", @@ -3149,17 +3169,17 @@ "name": "markets", "nameLocation": "853:7:2", "parameters": { - "id": 1350, + "id": 1354, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1349, + "id": 1353, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1356, + "scope": 1360, "src": "861:7:2", "stateVariable": false, "storageLocation": "default", @@ -3168,7 +3188,7 @@ "typeString": "address" }, "typeName": { - "id": 1348, + "id": 1352, "name": "address", "nodeType": "ElementaryTypeName", "src": "861:7:2", @@ -3184,17 +3204,17 @@ "src": "860:9:2" }, "returnParameters": { - "id": 1355, + "id": 1359, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1352, + "id": 1356, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1356, + "scope": 1360, "src": "893:4:2", "stateVariable": false, "storageLocation": "default", @@ -3203,7 +3223,7 @@ "typeString": "bool" }, "typeName": { - "id": 1351, + "id": 1355, "name": "bool", "nodeType": "ElementaryTypeName", "src": "893:4:2", @@ -3216,12 +3236,12 @@ }, { "constant": false, - "id": 1354, + "id": 1358, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1356, + "scope": 1360, "src": "899:4:2", "stateVariable": false, "storageLocation": "default", @@ -3230,7 +3250,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1353, + "id": 1357, "name": "uint", "nodeType": "ElementaryTypeName", "src": "899:4:2", @@ -3244,13 +3264,13 @@ ], "src": "892:12:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1362, + "id": 1366, "nodeType": "FunctionDefinition", "src": "909:54:2", "functionSelector": "7dc0d1d0", @@ -3260,47 +3280,47 @@ "name": "oracle", "nameLocation": "918:6:2", "parameters": { - "id": 1357, + "id": 1361, "nodeType": "ParameterList", "parameters": [], "src": "924:2:2" }, "returnParameters": { - "id": 1361, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1360, + "id": 1364, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1362, + "scope": 1366, "src": "950:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" }, "typeName": { - "id": 1359, + "id": 1363, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1358, + "id": 1362, "name": "PriceOracle", "nameLocations": [ "950:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, + "referencedDeclaration": 1435, "src": "950:11:2" }, - "referencedDeclaration": 1431, + "referencedDeclaration": 1435, "src": "950:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" } }, @@ -3309,13 +3329,13 @@ ], "src": "949:13:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1373, + "id": 1377, "nodeType": "FunctionDefinition", "src": "967:79:2", "functionSelector": "5ec88c79", @@ -3325,17 +3345,17 @@ "name": "getAccountLiquidity", "nameLocation": "976:19:2", "parameters": { - "id": 1365, + "id": 1369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1364, + "id": 1368, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1377, "src": "996:7:2", "stateVariable": false, "storageLocation": "default", @@ -3344,7 +3364,7 @@ "typeString": "address" }, "typeName": { - "id": 1363, + "id": 1367, "name": "address", "nodeType": "ElementaryTypeName", "src": "996:7:2", @@ -3360,17 +3380,17 @@ "src": "995:9:2" }, "returnParameters": { - "id": 1372, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1367, + "id": 1371, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1377, "src": "1028:4:2", "stateVariable": false, "storageLocation": "default", @@ -3379,7 +3399,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1366, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1028:4:2", @@ -3392,12 +3412,12 @@ }, { "constant": false, - "id": 1369, + "id": 1373, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1377, "src": "1034:4:2", "stateVariable": false, "storageLocation": "default", @@ -3406,7 +3426,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1368, + "id": 1372, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1034:4:2", @@ -3419,12 +3439,12 @@ }, { "constant": false, - "id": 1371, + "id": 1375, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1373, + "scope": 1377, "src": "1040:4:2", "stateVariable": false, "storageLocation": "default", @@ -3433,7 +3453,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1370, + "id": 1374, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1040:4:2", @@ -3447,13 +3467,13 @@ ], "src": "1027:18:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1382, + "id": 1386, "nodeType": "FunctionDefinition", "src": "1050:70:2", "functionSelector": "abfceffc", @@ -3463,17 +3483,17 @@ "name": "getAssetsIn", "nameLocation": "1059:11:2", "parameters": { - "id": 1376, + "id": 1380, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1375, + "id": 1379, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1382, + "scope": 1386, "src": "1071:7:2", "stateVariable": false, "storageLocation": "default", @@ -3482,7 +3502,7 @@ "typeString": "address" }, "typeName": { - "id": 1374, + "id": 1378, "name": "address", "nodeType": "ElementaryTypeName", "src": "1071:7:2", @@ -3498,50 +3518,50 @@ "src": "1070:9:2" }, "returnParameters": { - "id": 1381, + "id": 1385, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1380, + "id": 1384, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1382, + "scope": 1386, "src": "1103:15:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1351_$dyn_memory_ptr", "typeString": "contract CToken[]" }, "typeName": { "baseType": { - "id": 1378, + "id": 1382, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1377, + "id": 1381, "name": "CToken", "nameLocations": [ "1103:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, + "referencedDeclaration": 1351, "src": "1103:6:2" }, - "referencedDeclaration": 1347, + "referencedDeclaration": 1351, "src": "1103:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, - "id": 1379, + "id": 1383, "nodeType": "ArrayTypeName", "src": "1103:8:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1347_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1351_$dyn_storage_ptr", "typeString": "contract CToken[]" } }, @@ -3550,13 +3570,13 @@ ], "src": "1102:17:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1387, + "id": 1391, "nodeType": "FunctionDefinition", "src": "1124:37:2", "functionSelector": "e9af0292", @@ -3566,17 +3586,17 @@ "name": "claimComp", "nameLocation": "1133:9:2", "parameters": { - "id": 1385, + "id": 1389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1384, + "id": 1388, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1387, + "scope": 1391, "src": "1143:7:2", "stateVariable": false, "storageLocation": "default", @@ -3585,7 +3605,7 @@ "typeString": "address" }, "typeName": { - "id": 1383, + "id": 1387, "name": "address", "nodeType": "ElementaryTypeName", "src": "1143:7:2", @@ -3601,18 +3621,18 @@ "src": "1142:9:2" }, "returnParameters": { - "id": 1386, + "id": 1390, "nodeType": "ParameterList", "parameters": [], "src": "1160:0:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1394, + "id": 1398, "nodeType": "FunctionDefinition", "src": "1165:59:2", "functionSelector": "cc7ebdc4", @@ -3622,17 +3642,17 @@ "name": "compAccrued", "nameLocation": "1174:11:2", "parameters": { - "id": 1390, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1389, + "id": 1393, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1394, + "scope": 1398, "src": "1186:7:2", "stateVariable": false, "storageLocation": "default", @@ -3641,7 +3661,7 @@ "typeString": "address" }, "typeName": { - "id": 1388, + "id": 1392, "name": "address", "nodeType": "ElementaryTypeName", "src": "1186:7:2", @@ -3657,17 +3677,17 @@ "src": "1185:9:2" }, "returnParameters": { - "id": 1393, + "id": 1397, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1392, + "id": 1396, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1394, + "scope": 1398, "src": "1218:4:2", "stateVariable": false, "storageLocation": "default", @@ -3676,7 +3696,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1391, + "id": 1395, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1218:4:2", @@ -3690,13 +3710,13 @@ ], "src": "1217:6:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1401, + "id": 1405, "nodeType": "FunctionDefinition", "src": "1228:58:2", "functionSelector": "1d7b33d7", @@ -3706,17 +3726,17 @@ "name": "compSpeeds", "nameLocation": "1237:10:2", "parameters": { - "id": 1397, + "id": 1401, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1396, + "id": 1400, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1401, + "scope": 1405, "src": "1248:7:2", "stateVariable": false, "storageLocation": "default", @@ -3725,7 +3745,7 @@ "typeString": "address" }, "typeName": { - "id": 1395, + "id": 1399, "name": "address", "nodeType": "ElementaryTypeName", "src": "1248:7:2", @@ -3741,17 +3761,17 @@ "src": "1247:9:2" }, "returnParameters": { - "id": 1400, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1399, + "id": 1403, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1401, + "scope": 1405, "src": "1280:4:2", "stateVariable": false, "storageLocation": "default", @@ -3760,7 +3780,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1398, + "id": 1402, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1280:4:2", @@ -3774,13 +3794,13 @@ ], "src": "1279:6:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1408, + "id": 1412, "nodeType": "FunctionDefinition", "src": "1290:64:2", "functionSelector": "6aa875b5", @@ -3790,17 +3810,17 @@ "name": "compSupplySpeeds", "nameLocation": "1299:16:2", "parameters": { - "id": 1404, + "id": 1408, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1403, + "id": 1407, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1408, + "scope": 1412, "src": "1316:7:2", "stateVariable": false, "storageLocation": "default", @@ -3809,7 +3829,7 @@ "typeString": "address" }, "typeName": { - "id": 1402, + "id": 1406, "name": "address", "nodeType": "ElementaryTypeName", "src": "1316:7:2", @@ -3825,17 +3845,17 @@ "src": "1315:9:2" }, "returnParameters": { - "id": 1407, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1406, + "id": 1410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1408, + "scope": 1412, "src": "1348:4:2", "stateVariable": false, "storageLocation": "default", @@ -3844,7 +3864,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1405, + "id": 1409, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1348:4:2", @@ -3858,13 +3878,13 @@ ], "src": "1347:6:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1415, + "id": 1419, "nodeType": "FunctionDefinition", "src": "1358:64:2", "functionSelector": "f4a433c0", @@ -3874,17 +3894,17 @@ "name": "compBorrowSpeeds", "nameLocation": "1367:16:2", "parameters": { - "id": 1411, + "id": 1415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1410, + "id": 1414, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1415, + "scope": 1419, "src": "1384:7:2", "stateVariable": false, "storageLocation": "default", @@ -3893,7 +3913,7 @@ "typeString": "address" }, "typeName": { - "id": 1409, + "id": 1413, "name": "address", "nodeType": "ElementaryTypeName", "src": "1384:7:2", @@ -3909,17 +3929,17 @@ "src": "1383:9:2" }, "returnParameters": { - "id": 1414, + "id": 1418, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1413, + "id": 1417, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1415, + "scope": 1419, "src": "1416:4:2", "stateVariable": false, "storageLocation": "default", @@ -3928,7 +3948,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1412, + "id": 1416, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1416:4:2", @@ -3942,13 +3962,13 @@ ], "src": "1415:6:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1422, + "id": 1426, "nodeType": "FunctionDefinition", "src": "1426:58:2", "functionSelector": "4a584432", @@ -3958,17 +3978,17 @@ "name": "borrowCaps", "nameLocation": "1435:10:2", "parameters": { - "id": 1418, + "id": 1422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1417, + "id": 1421, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1422, + "scope": 1426, "src": "1446:7:2", "stateVariable": false, "storageLocation": "default", @@ -3977,7 +3997,7 @@ "typeString": "address" }, "typeName": { - "id": 1416, + "id": 1420, "name": "address", "nodeType": "ElementaryTypeName", "src": "1446:7:2", @@ -3993,17 +4013,17 @@ "src": "1445:9:2" }, "returnParameters": { - "id": 1421, + "id": 1425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1420, + "id": 1424, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1422, + "scope": 1426, "src": "1478:4:2", "stateVariable": false, "storageLocation": "default", @@ -4012,7 +4032,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1419, + "id": 1423, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1478:4:2", @@ -4026,7 +4046,7 @@ ], "src": "1477:6:2" }, - "scope": 1423, + "scope": 1427, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -4039,20 +4059,20 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 1423 + 1427 ], "name": "Comptroller", "nameLocation": "828:11:2", - "scope": 1625, + "scope": 1629, "usedErrors": [] }, { - "id": 1431, + "id": 1435, "nodeType": "ContractDefinition", "src": "1488:93:2", "nodes": [ { - "id": 1430, + "id": 1434, "nodeType": "FunctionDefinition", "src": "1514:65:2", "functionSelector": "fe2c6198", @@ -4062,17 +4082,17 @@ "name": "price", "nameLocation": "1523:5:2", "parameters": { - "id": 1426, + "id": 1430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1425, + "id": 1429, "mutability": "mutable", "name": "price", "nameLocation": "1543:5:2", "nodeType": "VariableDeclaration", - "scope": 1430, + "scope": 1434, "src": "1529:19:2", "stateVariable": false, "storageLocation": "memory", @@ -4081,7 +4101,7 @@ "typeString": "string" }, "typeName": { - "id": 1424, + "id": 1428, "name": "string", "nodeType": "ElementaryTypeName", "src": "1529:6:2", @@ -4096,17 +4116,17 @@ "src": "1528:21:2" }, "returnParameters": { - "id": 1429, + "id": 1433, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1428, + "id": 1432, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1430, + "scope": 1434, "src": "1573:4:2", "stateVariable": false, "storageLocation": "default", @@ -4115,7 +4135,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1427, + "id": 1431, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1573:4:2", @@ -4129,7 +4149,7 @@ ], "src": "1572:6:2" }, - "scope": 1431, + "scope": 1435, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -4142,32 +4162,32 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 1431 + 1435 ], "name": "PriceOracle", "nameLocation": "1498:11:2", - "scope": 1625, + "scope": 1629, "usedErrors": [] }, { - "id": 1624, + "id": 1628, "nodeType": "ContractDefinition", "src": "1583:1980:2", "nodes": [ { - "id": 1450, + "id": 1454, "nodeType": "StructDefinition", "src": "1626:203:2", "canonicalName": "CompoundV2Query.CTokenMetadata", "members": [ { "constant": false, - "id": 1435, + "id": 1439, "mutability": "mutable", "name": "cToken", "nameLocation": "1662:6:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1654:14:2", "stateVariable": false, "storageLocation": "default", @@ -4176,7 +4196,7 @@ "typeString": "address" }, "typeName": { - "id": 1434, + "id": 1438, "name": "address", "nodeType": "ElementaryTypeName", "src": "1654:7:2", @@ -4190,12 +4210,12 @@ }, { "constant": false, - "id": 1437, + "id": 1441, "mutability": "mutable", "name": "allowance", "nameLocation": "1679:9:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1674:14:2", "stateVariable": false, "storageLocation": "default", @@ -4204,7 +4224,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1436, + "id": 1440, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1674:4:2", @@ -4217,12 +4237,12 @@ }, { "constant": false, - "id": 1439, + "id": 1443, "mutability": "mutable", "name": "balance", "nameLocation": "1699:7:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1694:12:2", "stateVariable": false, "storageLocation": "default", @@ -4231,7 +4251,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1438, + "id": 1442, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1694:4:2", @@ -4244,12 +4264,12 @@ }, { "constant": false, - "id": 1441, + "id": 1445, "mutability": "mutable", "name": "balanceUnderlying", "nameLocation": "1717:17:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1712:22:2", "stateVariable": false, "storageLocation": "default", @@ -4258,7 +4278,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1440, + "id": 1444, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1712:4:2", @@ -4271,12 +4291,12 @@ }, { "constant": false, - "id": 1443, + "id": 1447, "mutability": "mutable", "name": "borrowBalance", "nameLocation": "1745:13:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1740:18:2", "stateVariable": false, "storageLocation": "default", @@ -4285,7 +4305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1442, + "id": 1446, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1740:4:2", @@ -4298,12 +4318,12 @@ }, { "constant": false, - "id": 1445, + "id": 1449, "mutability": "mutable", "name": "collateralFactor", "nameLocation": "1769:16:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1764:21:2", "stateVariable": false, "storageLocation": "default", @@ -4312,7 +4332,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1444, + "id": 1448, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1764:4:2", @@ -4325,12 +4345,12 @@ }, { "constant": false, - "id": 1447, + "id": 1451, "mutability": "mutable", "name": "exchangeRate", "nameLocation": "1796:12:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1791:17:2", "stateVariable": false, "storageLocation": "default", @@ -4339,7 +4359,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1446, + "id": 1450, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1791:4:2", @@ -4352,12 +4372,12 @@ }, { "constant": false, - "id": 1449, + "id": 1453, "mutability": "mutable", "name": "price", "nameLocation": "1819:5:2", "nodeType": "VariableDeclaration", - "scope": 1450, + "scope": 1454, "src": "1814:10:2", "stateVariable": false, "storageLocation": "default", @@ -4366,7 +4386,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1448, + "id": 1452, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1814:4:2", @@ -4380,23 +4400,23 @@ ], "name": "CTokenMetadata", "nameLocation": "1633:14:2", - "scope": 1624, + "scope": 1628, "visibility": "public" }, { - "id": 1460, + "id": 1464, "nodeType": "StructDefinition", "src": "1833:124:2", "canonicalName": "CompoundV2Query.QueryResponse", "members": [ { "constant": false, - "id": 1452, + "id": 1456, "mutability": "mutable", "name": "migratorEnabled", "nameLocation": "1865:15:2", "nodeType": "VariableDeclaration", - "scope": 1460, + "scope": 1464, "src": "1860:20:2", "stateVariable": false, "storageLocation": "default", @@ -4405,7 +4425,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1451, + "id": 1455, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1860:4:2", @@ -4418,45 +4438,45 @@ }, { "constant": false, - "id": 1456, + "id": 1460, "mutability": "mutable", "name": "tokens", "nameLocation": "1903:6:2", "nodeType": "VariableDeclaration", - "scope": 1460, + "scope": 1464, "src": "1886:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 1454, + "id": 1458, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1453, + "id": 1457, "name": "CTokenMetadata", "nameLocations": [ "1886:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "1886:14:2" }, - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "1886:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 1455, + "id": 1459, "nodeType": "ArrayTypeName", "src": "1886:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, @@ -4464,36 +4484,36 @@ }, { "constant": false, - "id": 1459, + "id": 1463, "mutability": "mutable", "name": "cometState", "nameLocation": "1942:10:2", "nodeType": "VariableDeclaration", - "scope": 1460, + "scope": 1464, "src": "1915:37:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" }, "typeName": { - "id": 1458, + "id": 1462, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1457, + "id": 1461, "name": "CometStateWithAccountState", "nameLocations": [ "1915:26:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 789, + "referencedDeclaration": 791, "src": "1915:26:2" }, - "referencedDeclaration": 789, + "referencedDeclaration": 791, "src": "1915:26:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" } }, @@ -4502,47 +4522,47 @@ ], "name": "QueryResponse", "nameLocation": "1840:13:2", - "scope": 1624, + "scope": 1628, "visibility": "public" }, { - "id": 1466, + "id": 1470, "nodeType": "StructDefinition", "src": "1961:75:2", "canonicalName": "CompoundV2Query.CTokenRequest", "members": [ { "constant": false, - "id": 1463, + "id": 1467, "mutability": "mutable", "name": "cToken", "nameLocation": "1995:6:2", "nodeType": "VariableDeclaration", - "scope": 1466, + "scope": 1470, "src": "1988:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" }, "typeName": { - "id": 1462, + "id": 1466, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1461, + "id": 1465, "name": "CToken", "nameLocations": [ "1988:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, + "referencedDeclaration": 1351, "src": "1988:6:2" }, - "referencedDeclaration": 1347, + "referencedDeclaration": 1351, "src": "1988:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, @@ -4550,12 +4570,12 @@ }, { "constant": false, - "id": 1465, + "id": 1469, "mutability": "mutable", "name": "priceOracleSymbol", "nameLocation": "2014:17:2", "nodeType": "VariableDeclaration", - "scope": 1466, + "scope": 1470, "src": "2007:24:2", "stateVariable": false, "storageLocation": "default", @@ -4564,7 +4584,7 @@ "typeString": "string" }, "typeName": { - "id": 1464, + "id": 1468, "name": "string", "nodeType": "ElementaryTypeName", "src": "2007:6:2", @@ -4578,79 +4598,79 @@ ], "name": "CTokenRequest", "nameLocation": "1968:13:2", - "scope": 1624, + "scope": 1628, "visibility": "public" }, { - "id": 1554, + "id": 1558, "nodeType": "FunctionDefinition", "src": "2040:713:2", "body": { - "id": 1553, + "id": 1557, "nodeType": "Block", "src": "2251:502:2", "statements": [ { "assignments": [ - 1488 + 1492 ], "declarations": [ { "constant": false, - "id": 1488, + "id": 1492, "mutability": "mutable", "name": "priceOracle", "nameLocation": "2269:11:2", "nodeType": "VariableDeclaration", - "scope": 1553, + "scope": 1557, "src": "2257:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" }, "typeName": { - "id": 1487, + "id": 1491, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1486, + "id": 1490, "name": "PriceOracle", "nameLocations": [ "2257:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, + "referencedDeclaration": 1435, "src": "2257:11:2" }, - "referencedDeclaration": 1431, + "referencedDeclaration": 1435, "src": "2257:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "id": 1492, + "id": 1496, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 1489, + "id": 1493, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1469, + "referencedDeclaration": 1473, "src": "2283:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" } }, - "id": 1490, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, @@ -4658,14 +4678,14 @@ "memberLocation": "2295:6:2", "memberName": "oracle", "nodeType": "MemberAccess", - "referencedDeclaration": 1362, + "referencedDeclaration": 1366, "src": "2283:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1431_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1435_$", "typeString": "function () view external returns (contract PriceOracle)" } }, - "id": 1491, + "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, @@ -4677,7 +4697,7 @@ "src": "2283:20:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" } }, @@ -4686,17 +4706,17 @@ }, { "assignments": [ - 1494 + 1498 ], "declarations": [ { "constant": false, - "id": 1494, + "id": 1498, "mutability": "mutable", "name": "cTokenCount", "nameLocation": "2314:11:2", "nodeType": "VariableDeclaration", - "scope": 1553, + "scope": 1557, "src": "2309:16:2", "stateVariable": false, "storageLocation": "default", @@ -4705,7 +4725,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1493, + "id": 1497, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2309:4:2", @@ -4717,21 +4737,21 @@ "visibility": "internal" } ], - "id": 1497, + "id": 1501, "initialValue": { "expression": { - "id": 1495, + "id": 1499, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1480, "src": "2328:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 1496, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -4750,65 +4770,65 @@ }, { "assignments": [ - 1502 + 1506 ], "declarations": [ { "constant": false, - "id": 1502, + "id": 1506, "mutability": "mutable", "name": "tokens", "nameLocation": "2372:6:2", "nodeType": "VariableDeclaration", - "scope": 1553, + "scope": 1557, "src": "2348:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 1500, + "id": 1504, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1499, + "id": 1503, "name": "CTokenMetadata", "nameLocations": [ "2348:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "2348:14:2" }, - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "2348:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 1501, + "id": 1505, "nodeType": "ArrayTypeName", "src": "2348:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, "visibility": "internal" } ], - "id": 1509, + "id": 1513, "initialValue": { "arguments": [ { - "id": 1507, + "id": 1511, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1494, + "referencedDeclaration": 1498, "src": "2402:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4823,7 +4843,7 @@ "typeString": "uint256" } ], - "id": 1506, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": true, @@ -4831,40 +4851,40 @@ "nodeType": "NewExpression", "src": "2381:20:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 1504, + "id": 1508, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1503, + "id": 1507, "name": "CTokenMetadata", "nameLocations": [ "2385:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "2385:14:2" }, - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "2385:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 1505, + "id": 1509, "nodeType": "ArrayTypeName", "src": "2385:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } } }, - "id": 1508, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": false, @@ -4876,7 +4896,7 @@ "src": "2381:33:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, @@ -4885,37 +4905,37 @@ }, { "body": { - "id": 1534, + "id": 1538, "nodeType": "Block", "src": "2459:97:2", "statements": [ { "expression": { - "id": 1532, + "id": 1536, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1520, + "id": 1524, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1502, + "referencedDeclaration": 1506, "src": "2467:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, - "id": 1522, + "id": 1526, "indexExpression": { - "id": 1521, + "id": 1525, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1511, + "referencedDeclaration": 1515, "src": "2474:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4929,7 +4949,7 @@ "nodeType": "IndexAccess", "src": "2467:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, @@ -4938,49 +4958,49 @@ "rightHandSide": { "arguments": [ { - "id": 1524, + "id": 1528, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1469, + "referencedDeclaration": 1473, "src": "2494:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" } }, { - "id": 1525, + "id": 1529, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1488, + "referencedDeclaration": 1492, "src": "2507:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" } }, { "baseExpression": { - "id": 1526, + "id": 1530, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1480, "src": "2520:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 1528, + "id": 1532, "indexExpression": { - "id": 1527, + "id": 1531, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1511, + "referencedDeclaration": 1515, "src": "2528:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4994,16 +5014,16 @@ "nodeType": "IndexAccess", "src": "2520:10:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata" } }, { - "id": 1529, + "id": 1533, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1478, + "referencedDeclaration": 1482, "src": "2532:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5011,11 +5031,11 @@ } }, { - "id": 1530, + "id": 1534, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1480, + "referencedDeclaration": 1484, "src": "2541:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5026,15 +5046,15 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" }, { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" }, { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_calldata_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata" }, { @@ -5046,18 +5066,18 @@ "typeString": "address payable" } ], - "id": 1523, + "id": 1527, "name": "cTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1623, + "referencedDeclaration": 1627, "src": "2479:14:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1423_$_t_contract$_PriceOracle_$1431_$_t_struct$_CTokenRequest_$1466_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1450_memory_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1427_$_t_contract$_PriceOracle_$1435_$_t_struct$_CTokenRequest_$1470_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1454_memory_ptr_$", "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" } }, - "id": 1531, + "id": 1535, "isConstant": false, "isLValue": false, "isPure": false, @@ -5069,17 +5089,17 @@ "src": "2479:70:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, "src": "2467:82:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "id": 1533, + "id": 1537, "nodeType": "ExpressionStatement", "src": "2467:82:2" } @@ -5090,17 +5110,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1516, + "id": 1520, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1514, + "id": 1518, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1511, + "referencedDeclaration": 1515, "src": "2437:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5110,11 +5130,11 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1515, + "id": 1519, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1494, + "referencedDeclaration": 1498, "src": "2441:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5127,20 +5147,20 @@ "typeString": "bool" } }, - "id": 1535, + "id": 1539, "initializationExpression": { "assignments": [ - 1511 + 1515 ], "declarations": [ { "constant": false, - "id": 1511, + "id": 1515, "mutability": "mutable", "name": "i", "nameLocation": "2430:1:2", "nodeType": "VariableDeclaration", - "scope": 1535, + "scope": 1539, "src": "2425:6:2", "stateVariable": false, "storageLocation": "default", @@ -5149,7 +5169,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1510, + "id": 1514, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2425:4:2", @@ -5161,10 +5181,10 @@ "visibility": "internal" } ], - "id": 1513, + "id": 1517, "initialValue": { "hexValue": "30", - "id": 1512, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": true, @@ -5183,7 +5203,7 @@ }, "loopExpression": { "expression": { - "id": 1518, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": false, @@ -5193,11 +5213,11 @@ "prefix": false, "src": "2454:3:2", "subExpression": { - "id": 1517, + "id": 1521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1511, + "referencedDeclaration": 1515, "src": "2454:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5209,7 +5229,7 @@ "typeString": "uint256" } }, - "id": 1519, + "id": 1523, "nodeType": "ExpressionStatement", "src": "2454:3:2" }, @@ -5222,11 +5242,11 @@ { "arguments": [ { - "id": 1539, + "id": 1543, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1478, + "referencedDeclaration": 1482, "src": "2632:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5234,11 +5254,11 @@ } }, { - "id": 1540, + "id": 1544, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1480, + "referencedDeclaration": 1484, "src": "2641:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5258,18 +5278,18 @@ } ], "expression": { - "id": 1537, + "id": 1541, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, + "referencedDeclaration": 1476, "src": "2616:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1538, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": false, @@ -5284,7 +5304,7 @@ "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1541, + "id": 1545, "isConstant": false, "isLValue": false, "isPure": false, @@ -5301,25 +5321,25 @@ } }, { - "id": 1542, + "id": 1546, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1502, + "referencedDeclaration": 1506, "src": "2667:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, { "arguments": [ { - "id": 1544, + "id": 1548, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, + "referencedDeclaration": 1476, "src": "2712:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", @@ -5327,11 +5347,11 @@ } }, { - "id": 1545, + "id": 1549, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1478, + "referencedDeclaration": 1482, "src": "2719:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5342,7 +5362,7 @@ "arguments": [ { "hexValue": "30", - "id": 1548, + "id": 1552, "isConstant": false, "isLValue": false, "isPure": true, @@ -5364,7 +5384,7 @@ "typeString": "int_const 0" } ], - "id": 1547, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": true, @@ -5376,7 +5396,7 @@ "typeString": "type(address payable)" }, "typeName": { - "id": 1546, + "id": 1550, "name": "address", "nodeType": "ElementaryTypeName", "src": "2728:8:2", @@ -5384,7 +5404,7 @@ "typeDescriptions": {} } }, - "id": 1549, + "id": 1553, "isConstant": false, "isLValue": false, "isPure": true, @@ -5416,18 +5436,18 @@ "typeString": "address payable" } ], - "id": 1543, + "id": 1547, "name": "queryWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, + "referencedDeclaration": 1142, "src": "2695:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$791_memory_ptr_$", "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" } }, - "id": 1550, + "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, @@ -5439,7 +5459,7 @@ "src": "2695:44:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" } } @@ -5451,26 +5471,26 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1450_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" }, { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" } ], - "id": 1536, + "id": 1540, "name": "QueryResponse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1460, + "referencedDeclaration": 1464, "src": "2575:13:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1460_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1464_storage_ptr_$", "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" } }, - "id": 1551, + "id": 1555, "isConstant": false, "isLValue": false, "isPure": false, @@ -5490,12 +5510,12 @@ "src": "2575:173:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeIdentifier": "t_struct$_QueryResponse_$1464_memory_ptr", "typeString": "struct CompoundV2Query.QueryResponse memory" } }, - "functionReturnParameters": 1485, - "id": 1552, + "functionReturnParameters": 1489, + "id": 1556, "nodeType": "Return", "src": "2562:186:2" } @@ -5508,41 +5528,41 @@ "name": "getMigratorData", "nameLocation": "2049:15:2", "parameters": { - "id": 1481, + "id": 1485, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1469, + "id": 1473, "mutability": "mutable", "name": "comptroller", "nameLocation": "2082:11:2", "nodeType": "VariableDeclaration", - "scope": 1554, + "scope": 1558, "src": "2070:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" }, "typeName": { - "id": 1468, + "id": 1472, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1467, + "id": 1471, "name": "Comptroller", "nameLocations": [ "2070:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, + "referencedDeclaration": 1427, "src": "2070:11:2" }, - "referencedDeclaration": 1423, + "referencedDeclaration": 1427, "src": "2070:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" } }, @@ -5550,12 +5570,12 @@ }, { "constant": false, - "id": 1472, + "id": 1476, "mutability": "mutable", "name": "comet", "nameLocation": "2105:5:2", "nodeType": "VariableDeclaration", - "scope": 1554, + "scope": 1558, "src": "2099:11:2", "stateVariable": false, "storageLocation": "default", @@ -5564,10 +5584,10 @@ "typeString": "contract Comet" }, "typeName": { - "id": 1471, + "id": 1475, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1470, + "id": 1474, "name": "Comet", "nameLocations": [ "2099:5:2" @@ -5587,45 +5607,45 @@ }, { "constant": false, - "id": 1476, + "id": 1480, "mutability": "mutable", "name": "cTokens", "nameLocation": "2141:7:2", "nodeType": "VariableDeclaration", - "scope": 1554, + "scope": 1558, "src": "2116:32:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest[]" }, "typeName": { "baseType": { - "id": 1474, + "id": 1478, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1473, + "id": 1477, "name": "CTokenRequest", "nameLocations": [ "2116:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, + "referencedDeclaration": 1470, "src": "2116:13:2" }, - "referencedDeclaration": 1466, + "referencedDeclaration": 1470, "src": "2116:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_storage_ptr", "typeString": "struct CompoundV2Query.CTokenRequest" } }, - "id": 1475, + "id": 1479, "nodeType": "ArrayTypeName", "src": "2116:15:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1466_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenRequest[]" } }, @@ -5633,12 +5653,12 @@ }, { "constant": false, - "id": 1478, + "id": 1482, "mutability": "mutable", "name": "account", "nameLocation": "2170:7:2", "nodeType": "VariableDeclaration", - "scope": 1554, + "scope": 1558, "src": "2154:23:2", "stateVariable": false, "storageLocation": "default", @@ -5647,7 +5667,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1477, + "id": 1481, "name": "address", "nodeType": "ElementaryTypeName", "src": "2154:15:2", @@ -5661,12 +5681,12 @@ }, { "constant": false, - "id": 1480, + "id": 1484, "mutability": "mutable", "name": "spender", "nameLocation": "2199:7:2", "nodeType": "VariableDeclaration", - "scope": 1554, + "scope": 1558, "src": "2183:23:2", "stateVariable": false, "storageLocation": "default", @@ -5675,7 +5695,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1479, + "id": 1483, "name": "address", "nodeType": "ElementaryTypeName", "src": "2183:15:2", @@ -5691,41 +5711,41 @@ "src": "2064:146:2" }, "returnParameters": { - "id": 1485, + "id": 1489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1484, + "id": 1488, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1554, + "scope": 1558, "src": "2229:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_memory_ptr", + "typeIdentifier": "t_struct$_QueryResponse_$1464_memory_ptr", "typeString": "struct CompoundV2Query.QueryResponse" }, "typeName": { - "id": 1483, + "id": 1487, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1482, + "id": 1486, "name": "QueryResponse", "nameLocations": [ "2229:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1460, + "referencedDeclaration": 1464, "src": "2229:13:2" }, - "referencedDeclaration": 1460, + "referencedDeclaration": 1464, "src": "2229:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1460_storage_ptr", + "typeIdentifier": "t_struct$_QueryResponse_$1464_storage_ptr", "typeString": "struct CompoundV2Query.QueryResponse" } }, @@ -5734,78 +5754,78 @@ ], "src": "2228:22:2" }, - "scope": 1624, + "scope": 1628, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1623, + "id": 1627, "nodeType": "FunctionDefinition", "src": "2757:804:2", "body": { - "id": 1622, + "id": 1626, "nodeType": "Block", "src": "2980:581:2", "statements": [ { "assignments": [ - 1575 + 1579 ], "declarations": [ { "constant": false, - "id": 1575, + "id": 1579, "mutability": "mutable", "name": "cToken", "nameLocation": "2993:6:2", "nodeType": "VariableDeclaration", - "scope": 1622, + "scope": 1626, "src": "2986:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" }, "typeName": { - "id": 1574, + "id": 1578, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1573, + "id": 1577, "name": "CToken", "nameLocations": [ "2986:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1347, + "referencedDeclaration": 1351, "src": "2986:6:2" }, - "referencedDeclaration": 1347, + "referencedDeclaration": 1351, "src": "2986:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, "visibility": "internal" } ], - "id": 1578, + "id": 1582, "initialValue": { "expression": { - "id": 1576, + "id": 1580, "name": "cTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1563, + "referencedDeclaration": 1567, "src": "3002:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_memory_ptr", "typeString": "struct CompoundV2Query.CTokenRequest memory" } }, - "id": 1577, + "id": 1581, "isConstant": false, "isLValue": true, "isPure": false, @@ -5813,10 +5833,10 @@ "memberLocation": "3016:6:2", "memberName": "cToken", "nodeType": "MemberAccess", - "referencedDeclaration": 1463, + "referencedDeclaration": 1467, "src": "3002:20:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, @@ -5826,18 +5846,18 @@ { "assignments": [ null, - 1580 + 1584 ], "declarations": [ null, { "constant": false, - "id": 1580, + "id": 1584, "mutability": "mutable", "name": "collateralFactor", "nameLocation": "3036:16:2", "nodeType": "VariableDeclaration", - "scope": 1622, + "scope": 1626, "src": "3031:21:2", "stateVariable": false, "storageLocation": "default", @@ -5846,7 +5866,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1579, + "id": 1583, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3031:4:2", @@ -5858,20 +5878,20 @@ "visibility": "internal" } ], - "id": 1588, + "id": 1592, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1585, + "id": 1589, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3084:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } } @@ -5879,11 +5899,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } ], - "id": 1584, + "id": 1588, "isConstant": false, "isLValue": false, "isPure": true, @@ -5895,14 +5915,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1583, + "id": 1587, "name": "address", "nodeType": "ElementaryTypeName", "src": "3076:7:2", "typeDescriptions": {} } }, - "id": 1586, + "id": 1590, "isConstant": false, "isLValue": false, "isPure": false, @@ -5927,18 +5947,18 @@ } ], "expression": { - "id": 1581, + "id": 1585, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1557, + "referencedDeclaration": 1561, "src": "3056:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" } }, - "id": 1582, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, @@ -5946,14 +5966,14 @@ "memberLocation": "3068:7:2", "memberName": "markets", "nodeType": "MemberAccess", - "referencedDeclaration": 1356, + "referencedDeclaration": 1360, "src": "3056:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", "typeString": "function (address) view external returns (bool,uint256)" } }, - "id": 1587, + "id": 1591, "isConstant": false, "isLValue": false, "isPure": false, @@ -5978,14 +5998,14 @@ { "arguments": [ { - "id": 1592, + "id": 1596, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3153:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } } @@ -5993,11 +6013,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } ], - "id": 1591, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": true, @@ -6009,14 +6029,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1590, + "id": 1594, "name": "address", "nodeType": "ElementaryTypeName", "src": "3145:7:2", "typeDescriptions": {} } }, - "id": 1593, + "id": 1597, "isConstant": false, "isLValue": false, "isPure": false, @@ -6035,11 +6055,11 @@ { "arguments": [ { - "id": 1596, + "id": 1600, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1565, + "referencedDeclaration": 1569, "src": "3198:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6047,11 +6067,11 @@ } }, { - "id": 1597, + "id": 1601, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1567, + "referencedDeclaration": 1571, "src": "3207:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6071,18 +6091,18 @@ } ], "expression": { - "id": 1594, + "id": 1598, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3181:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, - "id": 1595, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": false, @@ -6090,14 +6110,14 @@ "memberLocation": "3188:9:2", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1315, + "referencedDeclaration": 1319, "src": "3181:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1598, + "id": 1602, "isConstant": false, "isLValue": false, "isPure": false, @@ -6116,11 +6136,11 @@ { "arguments": [ { - "id": 1601, + "id": 1605, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1565, + "referencedDeclaration": 1569, "src": "3251:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6136,18 +6156,18 @@ } ], "expression": { - "id": 1599, + "id": 1603, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3234:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, - "id": 1600, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, @@ -6155,14 +6175,14 @@ "memberLocation": "3241:9:2", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1322, + "referencedDeclaration": 1326, "src": "3234:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1602, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -6181,11 +6201,11 @@ { "arguments": [ { - "id": 1605, + "id": 1609, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1565, + "referencedDeclaration": 1569, "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6201,18 +6221,18 @@ } ], "expression": { - "id": 1603, + "id": 1607, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3288:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, - "id": 1604, + "id": 1608, "isConstant": false, "isLValue": false, "isPure": false, @@ -6220,14 +6240,14 @@ "memberLocation": "3295:19:2", "memberName": "balanceOfUnderlying", "nodeType": "MemberAccess", - "referencedDeclaration": 1329, + "referencedDeclaration": 1333, "src": "3288:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 1606, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": false, @@ -6246,11 +6266,11 @@ { "arguments": [ { - "id": 1609, + "id": 1613, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1565, + "referencedDeclaration": 1569, "src": "3376:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6266,18 +6286,18 @@ } ], "expression": { - "id": 1607, + "id": 1611, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3348:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, - "id": 1608, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": false, @@ -6285,14 +6305,14 @@ "memberLocation": "3355:20:2", "memberName": "borrowBalanceCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 1336, + "referencedDeclaration": 1340, "src": "3348:27:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 1610, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -6309,11 +6329,11 @@ } }, { - "id": 1611, + "id": 1615, "name": "collateralFactor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1580, + "referencedDeclaration": 1584, "src": "3412:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6325,18 +6345,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 1612, + "id": 1616, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1575, + "referencedDeclaration": 1579, "src": "3452:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1347", + "typeIdentifier": "t_contract$_CToken_$1351", "typeString": "contract CToken" } }, - "id": 1613, + "id": 1617, "isConstant": false, "isLValue": false, "isPure": false, @@ -6344,14 +6364,14 @@ "memberLocation": "3459:19:2", "memberName": "exchangeRateCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 1341, + "referencedDeclaration": 1345, "src": "3452:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 1614, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": false, @@ -6371,18 +6391,18 @@ "arguments": [ { "expression": { - "id": 1617, + "id": 1621, "name": "cTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1563, + "referencedDeclaration": 1567, "src": "3515:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_memory_ptr", "typeString": "struct CompoundV2Query.CTokenRequest memory" } }, - "id": 1618, + "id": 1622, "isConstant": false, "isLValue": true, "isPure": false, @@ -6390,7 +6410,7 @@ "memberLocation": "3529:17:2", "memberName": "priceOracleSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 1465, + "referencedDeclaration": 1469, "src": "3515:31:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6406,18 +6426,18 @@ } ], "expression": { - "id": 1615, + "id": 1619, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1560, + "referencedDeclaration": 1564, "src": "3497:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" } }, - "id": 1616, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, @@ -6425,14 +6445,14 @@ "memberLocation": "3509:5:2", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 1430, + "referencedDeclaration": 1434, "src": "3497:17:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (string memory) view external returns (uint256)" } }, - "id": 1619, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": false, @@ -6484,18 +6504,18 @@ "typeString": "uint256" } ], - "id": 1589, + "id": 1593, "name": "CTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "3112:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1450_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1454_storage_ptr_$", "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" } }, - "id": 1620, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, @@ -6525,12 +6545,12 @@ "src": "3112:444:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "functionReturnParameters": 1572, - "id": 1621, + "functionReturnParameters": 1576, + "id": 1625, "nodeType": "Return", "src": "3099:457:2" } @@ -6543,41 +6563,41 @@ "name": "cTokenMetadata", "nameLocation": "2766:14:2", "parameters": { - "id": 1568, + "id": 1572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1557, + "id": 1561, "mutability": "mutable", "name": "comptroller", "nameLocation": "2798:11:2", "nodeType": "VariableDeclaration", - "scope": 1623, + "scope": 1627, "src": "2786:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" }, "typeName": { - "id": 1556, + "id": 1560, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1555, + "id": 1559, "name": "Comptroller", "nameLocations": [ "2786:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1423, + "referencedDeclaration": 1427, "src": "2786:11:2" }, - "referencedDeclaration": 1423, + "referencedDeclaration": 1427, "src": "2786:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1423", + "typeIdentifier": "t_contract$_Comptroller_$1427", "typeString": "contract Comptroller" } }, @@ -6585,36 +6605,36 @@ }, { "constant": false, - "id": 1560, + "id": 1564, "mutability": "mutable", "name": "priceOracle", "nameLocation": "2827:11:2", "nodeType": "VariableDeclaration", - "scope": 1623, + "scope": 1627, "src": "2815:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" }, "typeName": { - "id": 1559, + "id": 1563, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1558, + "id": 1562, "name": "PriceOracle", "nameLocations": [ "2815:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1431, + "referencedDeclaration": 1435, "src": "2815:11:2" }, - "referencedDeclaration": 1431, + "referencedDeclaration": 1435, "src": "2815:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1431", + "typeIdentifier": "t_contract$_PriceOracle_$1435", "typeString": "contract PriceOracle" } }, @@ -6622,36 +6642,36 @@ }, { "constant": false, - "id": 1563, + "id": 1567, "mutability": "mutable", "name": "cTokenRequest", "nameLocation": "2865:13:2", "nodeType": "VariableDeclaration", - "scope": 1623, + "scope": 1627, "src": "2844:34:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_memory_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_memory_ptr", "typeString": "struct CompoundV2Query.CTokenRequest" }, "typeName": { - "id": 1562, + "id": 1566, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1561, + "id": 1565, "name": "CTokenRequest", "nameLocations": [ "2844:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1466, + "referencedDeclaration": 1470, "src": "2844:13:2" }, - "referencedDeclaration": 1466, + "referencedDeclaration": 1470, "src": "2844:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1466_storage_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1470_storage_ptr", "typeString": "struct CompoundV2Query.CTokenRequest" } }, @@ -6659,12 +6679,12 @@ }, { "constant": false, - "id": 1565, + "id": 1569, "mutability": "mutable", "name": "account", "nameLocation": "2900:7:2", "nodeType": "VariableDeclaration", - "scope": 1623, + "scope": 1627, "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", @@ -6673,7 +6693,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1564, + "id": 1568, "name": "address", "nodeType": "ElementaryTypeName", "src": "2884:15:2", @@ -6687,12 +6707,12 @@ }, { "constant": false, - "id": 1567, + "id": 1571, "mutability": "mutable", "name": "spender", "nameLocation": "2929:7:2", "nodeType": "VariableDeclaration", - "scope": 1623, + "scope": 1627, "src": "2913:23:2", "stateVariable": false, "storageLocation": "default", @@ -6701,7 +6721,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1566, + "id": 1570, "name": "address", "nodeType": "ElementaryTypeName", "src": "2913:15:2", @@ -6717,41 +6737,41 @@ "src": "2780:160:2" }, "returnParameters": { - "id": 1572, + "id": 1576, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1571, + "id": 1575, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1623, + "scope": 1627, "src": "2957:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" }, "typeName": { - "id": 1570, + "id": 1574, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1569, + "id": 1573, "name": "CTokenMetadata", "nameLocations": [ "2957:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "2957:14:2" }, - "referencedDeclaration": 1450, + "referencedDeclaration": 1454, "src": "2957:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1450_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, @@ -6760,7 +6780,7 @@ ], "src": "2956:23:2" }, - "scope": 1624, + "scope": 1628, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -6770,16 +6790,16 @@ "baseContracts": [ { "baseName": { - "id": 1432, + "id": 1436, "name": "CometQuery", "nameLocations": [ "1611:10:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1268, + "referencedDeclaration": 1272, "src": "1611:10:2" }, - "id": 1433, + "id": 1437, "nodeType": "InheritanceSpecifier", "src": "1611:10:2" } @@ -6789,12 +6809,12 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 1624, - 1268 + 1628, + 1272 ], "name": "CompoundV2Query", "nameLocation": "1592:15:2", - "scope": 1625, + "scope": 1629, "usedErrors": [] } ], diff --git a/web/helpers/utils.ts b/web/helpers/utils.ts index cffc514..5ad2fca 100644 --- a/web/helpers/utils.ts +++ b/web/helpers/utils.ts @@ -16,7 +16,8 @@ import { MigrateCollateralTokenState, MigrationSource, StateType, - SwapInfo + SwapInfo, + Token as TokenType } from '../types'; import { @@ -145,44 +146,80 @@ const getCollateralValue = (collateralAssets: TokenWithAccountState[]): bigint = ); }; -export function cometQueryResponseToCometData(response: CometQueryResponse): ProtocolAndAccountState { +export function cometQueryResponseToCometData( + response: CometQueryResponse, + nativeToken: TokenType +): ProtocolAndAccountState { const collateralAssets: TokenWithAccountState[] = response.collateralAssets.map(asset => { + let allowance: bigint; + let name: string; + let symbol: string; + let walletBalance: bigint; + // Custom logic to transform wrapped native token to native token (e.g. WETH to ETH) + if (asset.symbol === `W${nativeToken.symbol}`) { + allowance = MAX_UINT256; + name = nativeToken.name; + symbol = nativeToken.symbol; + walletBalance = response.nativeAssetWalletBalance.toBigInt(); + } else { + allowance = asset.allowance.toBigInt(); + name = asset.name; + symbol = asset.symbol; + walletBalance = asset.walletBalance.toBigInt(); + } + return { address: asset.collateralAsset, - allowance: asset.allowance.toBigInt(), + allowance, balance: asset.balance.toBigInt(), collateralFactor: asset.collateralFactor.toBigInt(), decimals: asset.decimals.toNumber(), liquidateCollateralFactor: asset.liquidateCollateralFactor.toBigInt(), liquidationFactor: asset.liquidationFactor.toBigInt(), - name: asset.name, + name, price: asset.price.toBigInt(), priceFeed: asset.priceFeed, - symbol: asset.symbol, + symbol, supplyCap: asset.supplyCap.toBigInt(), totalSupply: asset.totalSupply.toBigInt(), - walletBalance: asset.walletBalance.toBigInt() + walletBalance }; }); + let baseAssetAllowance: bigint; + let baseAssetName: string; + let baseAssetSymbol: string; + let baseAssetWalletBalance: bigint; const baseAssetDecimals = response.baseAsset.decimals.toNumber(); const baseAssetPrice = response.baseAsset.price.toBigInt(); - const borrowCapacity = getCapacity('borrow', baseAssetDecimals, baseAssetPrice, collateralAssets); + + if (response.baseAsset.symbol === `W${nativeToken.symbol}`) { + baseAssetAllowance = MAX_UINT256; + baseAssetName = nativeToken.name; + baseAssetSymbol = nativeToken.symbol; + baseAssetWalletBalance = response.nativeAssetWalletBalance.toBigInt(); + } else { + baseAssetAllowance = response.baseAsset.allowance.toBigInt(); + baseAssetName = response.baseAsset.name; + baseAssetSymbol = response.baseAsset.symbol; + baseAssetWalletBalance = response.baseAsset.walletBalance.toBigInt(); + } + return { baseAsset: { address: response.baseAsset.baseAsset, - allowance: response.baseAsset.allowance.toBigInt(), + allowance: baseAssetAllowance, balance: response.baseAsset.balance.toBigInt(), balanceOfComet: response.baseAsset.balanceOfComet.toBigInt(), borrowCapacity: borrowCapacity, decimals: baseAssetDecimals, - name: response.baseAsset.name, - symbol: response.baseAsset.symbol, + name: baseAssetName, + symbol: baseAssetSymbol, minBorrow: response.baseAsset.minBorrow.toBigInt(), priceFeed: response.baseAsset.priceFeed, price: baseAssetPrice, - walletBalance: response.baseAsset.walletBalance.toBigInt() + walletBalance: baseAssetWalletBalance }, borrowAPR: response.borrowAPR.toBigInt(), borrowRewardsAPR: 0n, diff --git a/web/types.ts b/web/types.ts index 0d74f77..a14c24a 100644 --- a/web/types.ts +++ b/web/types.ts @@ -67,6 +67,7 @@ export interface AaveNetworkConfig { } export type Token = { + decimals: number; name: string; symbol: string; }; @@ -224,6 +225,7 @@ export type CometQueryResponse = { bulkerAllowance: BigNumber; collateralAssets: CometCollateralAsset[]; earnAPR: BigNumber; + nativeAssetWalletBalance: BigNumber; totalBorrow: BigNumber; totalBorrowPrincipal: BigNumber; totalSupply: BigNumber; From ef41190232ef7a59c03039fab3e394c73a29c62e Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Thu, 5 Jan 2023 13:11:26 -0500 Subject: [PATCH 09/11] Handle comet balance potentially being negative --- web/Migrator.tsx | 7 +- web/helpers/Sleuth/CometQuery.sol | 4 +- .../out/AaveV2Query.sol/AaveV2Query.json | 40 +- .../Sleuth/out/CometQuery.sol/CometQuery.json | 2592 +++++++++-------- .../CompoundV2Query.sol/CompoundV2Query.json | 1308 ++++----- web/lib/usePoll.ts | 2 +- 6 files changed, 2023 insertions(+), 1930 deletions(-) diff --git a/web/Migrator.tsx b/web/Migrator.tsx index 294843f..3a26ac1 100644 --- a/web/Migrator.tsx +++ b/web/Migrator.tsx @@ -305,10 +305,13 @@ export default function Migrator({ return tokenState.borrowBalance > 0n && !!stableCoins.find(coin => coin === tokenState.underlying.symbol); }); const tokensWithCollateralBalances = collateralTokens.filter(tokenState => { - const v3CollateralAsset = cometData.collateralAssets.find(asset => asset.symbol === tokenState.underlying.symbol); + const v3CollateralAsset = cometData.collateralAssets.find( + asset => asset.address.toLowerCase() === tokenState.underlying.address.toLowerCase() + ); return ( - (v3CollateralAsset !== undefined || tokenState.underlying.symbol === cometData.baseAsset.symbol) && + (v3CollateralAsset !== undefined || + tokenState.underlying.address.toLowerCase() === cometData.baseAsset.address.toLowerCase()) && tokenState.balance > 0n ); }); diff --git a/web/helpers/Sleuth/CometQuery.sol b/web/helpers/Sleuth/CometQuery.sol index 01253c3..05acb5a 100644 --- a/web/helpers/Sleuth/CometQuery.sol +++ b/web/helpers/Sleuth/CometQuery.sol @@ -148,7 +148,7 @@ contract CometQuery { struct BaseAssetWithAccountState { address baseAsset; uint allowance; - uint balance; + int balance; uint balanceOfComet; uint decimals; uint minBorrow; @@ -284,7 +284,7 @@ contract CometQuery { BaseAssetWithAccountState memory baseAsset = BaseAssetWithAccountState({ baseAsset: response.baseAsset.baseAsset, allowance: ERC20(response.baseAsset.baseAsset).allowance(account, address(comet)), - balance: baseAssetSupplyBalance - baseAssetBorrowBalance, + balance: int(baseAssetSupplyBalance) - int(baseAssetBorrowBalance), symbol: response.baseAsset.symbol, decimals: response.baseAsset.decimals, minBorrow: response.baseAsset.minBorrow, diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json index 1658b27..2f2f0aa 100644 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json @@ -473,9 +473,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -893,9 +893,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -1090,13 +1090,13 @@ } ], "bytecode": { - "object": "0x6080806040523461001657612c95908161001c8239f35b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec14611045575080635346cc1914610bcd578063c2815c0b14610a92578063cbe293fa14610a46578063d4fc9fc6146108bf5763ec7d7f7a1461006257600080fd5b346106445760e0366003190112610644576004356001600160a01b03811690819003610644576100906110fc565b610098611235565b916001600160401b038060643511610644573660236064350112156106445760643560040135116106445736602460606064356004013502606435010111610644576084356001600160a01b0381169003610644576004926100f8611209565b602061010261121f565b936000606060405161011381611112565b8281528185820152610123611630565b6040820152015260405196878092631f94a27560e31b82525afa9485156106515760009561087b575b5061015c606435600401356116e4565b9361016a60405195866111d4565b60046064350135808652601f1990610181906116e4565b0160005b81811061086457505060005b6064356004013581106107b9575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa90811561065157600091610787575b506101f5611630565b506101ff82611bc9565b60c0526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa90811561065157600091610755575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561065157600091610723575b5060c0515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa80156106515760006080526106f0575b5082828103116106da5760249260c051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106515760009b6106a6575b506103556040518060a052611164565b60a05152608051602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a060c051015151936103b7856116e4565b946103c560405196876111d4565b8086526103d4601f19916116e4565b0160005b81811061068f57505060005b60a060c0510151805160ff8316101561043d5790610417610438926104106084359160ff851690611740565b5187612a43565b61042460ff831689611740565b5261043260ff821688611740565b50611b9f565b6103e4565b50508585858560c0519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106515760009161065d575b5060c0519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6104eb82611148565b60a051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa91821561065157600092610618575b506040519361058685611112565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f75750505082936105ec9151601f198583030160608601526113ac565b905160808301520390f35b90919560206101208261060d6001948b5161124b565b0197019291016105ca565b9091506020813d602011610649575b81610634602093836111d4565b8101031261064457519084610578565b600080fd5b3d9150610627565b6040513d6000823e3d90fd5b90506020813d602011610687575b81610678602093836111d4565b8101031261064457518a6104a3565b3d915061066b565b60209061069a612662565b82828a010152016103d8565b909a506020813d6020116106d2575b816106c2602093836111d4565b8101031261064457519938610345565b3d91506106b5565b634e487b7160e01b600052601160045260246000fd5b6020813d60201161071b575b81610709602093836111d4565b810103126106445751608052386102c5565b3d91506106fc565b90506020813d60201161074d575b8161073e602093836111d4565b8101031261064457513861027b565b3d9150610731565b90506020813d60201161077f575b81610770602093836111d4565b8101031261064457513861023e565b3d9150610763565b90506020813d6020116107b1575b816107a2602093836111d4565b810103126106445751386101ec565b3d9150610795565b60606064358282020136036023190112610644576040516107d98161112d565b6064356060830201602401356001600160a01b03811690036106445760643560608302016024810135825261083d918591610816906044016111f5565b602082015261082d606460608602813501016111f5565b6040820152608435908a8661176a565b6108478288611740565b526108528187611740565b5060001981146106da57600101610191565b60209061086f6116fb565b82828a01015201610185565b9094506020813d6020116108b7575b81610897602093836111d4565b8101031261064457516001600160a01b038116810361064457933861014c565b3d915061088a565b3461064457602080600319360112610644576108e16108dc6110e6565b611bc9565b906040519080825282519261018090818385015261097760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e060808801519761094a610100998a6102208b01526102a08a01906112d0565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112d0565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a19578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a36838f8690600196030187528d5161159b565b9b019301930191949392906109cd565b3461064457604036600319011261064457610a5f6110e6565b6024359060ff8216820361064457610a8e91610a7a916126e0565b60405191829160208352602083019061159b565b0390f35b346106445760031960603682011261064457610aac6110e6565b602435906001600160401b039283831161064457610160809184360301126106445760405190810181811085821117610bb757604052610aee836004016111f5565b81526024830135602082015260448301356040820152606483013584811161064457610b209060043691860101611554565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b4f60e484016111f5565b60e082015261010483013561010082015261012483013593841161064457610144610ba393610b87610a8e9660043691840101611554565b6101208401520135610140820152610b9d611235565b91612a43565b6040519182916020835260208301906112f5565b634e487b7160e01b600052604160045260246000fd5b3461064457606036600319011261064457610be66110e6565b610bee6110fc565b90610bf7611235565b610bff611630565b50610c0982611bc9565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561065157600093611011575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561065157600094610fdd575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561065157600091610fab575b5082828103116106da57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106515760009b610f77575b5060206040519e8f90610d5c82611164565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610da1846116e4565b93610daf60405195866111d4565b808552610dbe601f19916116e4565b0160005b818110610f6057505060005b60a0860151805160ff83161015610e155790610df588610410610e109460ff851690611740565b610e0260ff831688611740565b5261043260ff821687611740565b610dce565b610e6d8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561065157600092610f2a575b610a8e995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ed082611148565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113ac565b91506020893d602011610f58575b81610f45602093836111d4565b8101031261064457610a8e985191610e89565b3d9150610f38565b602090610f6b612662565b82828901015201610dc2565b909a506020813d602011610fa3575b81610f93602093836111d4565b8101031261064457519938610d4a565b3d9150610f86565b90506020813d602011610fd5575b81610fc6602093836111d4565b81010312610644575188610ccd565b3d9150610fb9565b9093506020813d602011611009575b81610ff9602093836111d4565b8101031261064457519286610c87565b3d9150610fec565b9092506020813d60201161103d575b8161102d602093836111d4565b8101031261064457519185610c49565b3d9150611020565b346106445760e03660031901126106445761105e6110e6565b6001600160a01b03906024358281168103610644576060366043190112610644576110888461112d565b60443583811681036106445784526064358381168103610644576020850152608435928316830361064457836110d79360406101209601526110c8611209565b916110d161121f565b9361176a565b6110e4604051809261124b565bf35b600435906001600160a01b038216820361064457565b602435906001600160a01b038216820361064457565b608081019081106001600160401b03821117610bb757604052565b606081019081106001600160401b03821117610bb757604052565b6101c081019081106001600160401b03821117610bb757604052565b61016081019081106001600160401b03821117610bb757604052565b61012081019081106001600160401b03821117610bb757604052565b61018081019081106001600160401b03821117610bb757604052565b61010081019081106001600160401b03821117610bb757604052565b90601f801991011681019081106001600160401b03821117610bb757604052565b35906001600160a01b038216820361064457565b60a435906001600160a01b038216820361064457565b60c435906001600160a01b038216820361064457565b604435906001600160a01b038216820361064457565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112c05750506000910152565b81810151838201526020016112b0565b906020916112e9815180928185528580860191016112ad565b601f01601f1916010190565b9061139360018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261134760a08501516101c08060a08701528501906112d0565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112d0565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161141e61016093846102808801526103208701906112d0565b9060e0830151166102a0860152610100808301516102c087015261145661012092838501516101bf19898303016102e08a01526112d0565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061150a5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806115298f93600194601f19878303018852516112f5565b9e019301930191949392906114bb565b6001600160401b038111610bb757601f01601f191660200190565b81601f820112156106445780359061156b82611539565b9261157960405194856111d4565b8284526020838301011161064457816000926020809301838601378301015290565b9061162260018060a01b0380845116835260208401516020840152604084015160408401526115d960608501516101608060608701528501906112d0565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112d0565b916101408091015191015290565b6040519061163d82611148565b6040516101a08361164d83611164565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bb75760051b60200190565b6040519061170882611180565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117545760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91939092936117776116fb565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065157600095611a2d575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa918215610651576000926119f9575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610651576000946119c5575b506040516370a0823160e01b815287810186905294602086602481855afa95861561065157600096611991575b50604051906370a0823160e01b825288820152602081602481855afa968715610651578a91600098611959575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065157600098611922575b50604051986118f48a611180565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611951575b8161193d602093836111d4565b8101031261194e57505196386118e6565b80fd5b3d9150611930565b9150966020823d602011611989575b81611975602093836111d4565b8101031261194e57505195899060246118aa565b3d9150611968565b90956020823d6020116119bd575b816119ac602093836111d4565b8101031261194e575051943861187d565b3d915061199f565b90936020823d6020116119f1575b816119e0602093836111d4565b8101031261194e5750519238611850565b3d91506119d3565b90916020823d602011611a25575b81611a14602093836111d4565b8101031261194e5750519038611818565b3d9150611a07565b6020959195813d602011611a92575b81611a49602093836111d4565b81010312611a8e576040519160208301908382106001600160401b03831117611a7b57506040525181529360206117cf565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a3c565b519060ff8216820361064457565b51906001600160a01b038216820361064457565b51906001600160401b038216820361064457565b51906cffffffffffffffffffffffffff8216820361064457565b602081830312610644578051906001600160401b038211610644570181601f82011215610644578051611b1c81611539565b92611b2a60405194856111d4565b8184526020828401011161064457611b4891602080850191016112ad565b90565b60405190611b5882611164565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106da5760010190565b6301e133809080600019048211811515166106da570290565b610100526000610160604051611bde8161119c565b604051611bea816111b8565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361010051165afa801561065157600061014052612626575b506040519063c55dae6360e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ea575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ae575b506040519163300e6beb60e01b835260208360048160018060a01b0361010051165afa9283156106515760009361257a575b506040516355d3f8af60e11b815261010051602090829060049082906001600160a01b03165afa90811561065157600091612548575b506040519363189bb2f160e01b855260208560048160018060a01b0361010051165afa94851561065157600095612514575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361010051165afa918215610651576000926124e0575b50604051936349b270c560e11b855260208560048160018060a01b0361010051165afa948515610651576000956124ac575b5060405197637eb7113160e01b895260208960048160018060a01b0361010051165afa98891561065157600099612478575b50604051926318160ddd60e01b845260208460048160018060a01b0361010051165afa93841561065157600094612444575b506040519163020a17bd60e61b835260208360048160018060a01b0361010051165afa92831561065157600093612410575b5060405163b9f0baf760e01b81526101008051919591869060049082906001600160a01b03165afa94851561065157600095612344575b50604051634fd41dad60e11b8152600481018d905261010051602090829060249082906001600160a01b03165afa801561065157600061012052612308575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361010051165afa9b8c156106515760009c6122cc575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610651576000946122af575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106515760006101605261227b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561065157600092612256575b506040516341976e0960e01b81526001600160a01b0384811660048301526101005191959160209187916024918391165afa94851561065157600095612222575b506040516101808181526370a0823160e01b9091526101005181516001600160a01b039182166004909101528151919291602091602490829085165afa916101a0928084521561065157600092516121ea575b506120696040518060e0526111b8565b60018060a01b031660e05152602060e051015261016051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e0805101526120c060ff61014051166116e4565b976120ce604051998a6111d4565b60ff61014051168952601f196120e960ff61014051166116e4565b0160005b8181106121d257505060005b60ff610140511660ff8216101561213b578061211b61213692610100516126e0565b61212860ff83168d611740565b5261043260ff82168c611740565b6120f9565b509193959790929496986121656001600160401b0361215e816101205116611bb0565b9216611bb0565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61218f8c61119c565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121e0611b4b565b92010152016120ed565b9091506020903d60201161221a575b8061220783602093516111d4565b5180928101031261064457519038612059565b3d91506121f9565b9094506020813d60201161224e575b8161223e602093836111d4565b8101031261064457519338612006565b3d9150612231565b6122749192503d806000833e61226c81836111d4565b810190611aea565b9038611fc5565b6020813d6020116122a7575b81612294602093836111d4565b8101031261064457516101605238611f95565b3d9150612287565b6122c59194503d806000833e61226c81836111d4565b9238611f64565b909b506020813d602011612300575b816122e8602093836111d4565b81010312610644576122f990611abc565b9a38611f34565b3d91506122db565b6020813d60201161233c575b81612321602093836111d4565b810103126106445761233290611abc565b6101205238611efd565b3d9150612314565b909450610100813d61010011612408575b8161236361010093836111d4565b810103126106445760405190612378826111b8565b61238181611abc565b825261238f60208201611abc565b60208301526123a060408201611abc565b60408301526123b160608201611abc565b60608301526123c260808201611ad0565b60808301526123d360a08201611ad0565b60a083015260c081015164ffffffffff811681036106445760c08301526123fc9060e001611a9a565b60e08201529338611ebe565b3d9150612355565b9092506020813d60201161243c575b8161242c602093836111d4565b8101031261064457519138611e87565b3d915061241f565b9093506020813d602011612470575b81612460602093836111d4565b8101031261064457519238611e55565b3d9150612453565b9098506020813d6020116124a4575b81612494602093836111d4565b8101031261064457519738611e23565b3d9150612487565b9094506020813d6020116124d8575b816124c8602093836111d4565b8101031261064457519338611df1565b3d91506124bb565b9091506020813d60201161250c575b816124fc602093836111d4565b8101031261064457519038611dbf565b3d91506124ef565b9094506020813d602011612540575b81612530602093836111d4565b8101031261064457519338611d8d565b3d9150612523565b90506020813d602011612572575b81612563602093836111d4565b81010312610644575138611d5b565b3d9150612556565b9092506020813d6020116125a6575b81612596602093836111d4565b8101031261064457519138611d25565b3d9150612589565b9091506020813d6020116125e2575b816125ca602093836111d4565b81010312610644576125db90611aa8565b9038611cf3565b3d91506125bd565b9091506020813d60201161261e575b81612606602093836111d4565b810103126106445761261790611aa8565b9038611cc1565b3d91506125f9565b6020813d60201161265a575b8161263f602093836111d4565b810103126106445761265090611a9a565b6101405238611c8f565b3d9150612632565b6040519061266f82611148565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064457565b906126e9611b4b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa9283156128ec5760009361298a575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561297f5760009261294f575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128c257908c97969594939291600095612934575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561292957908c9160009a6128f7575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156128ec5760009e6128cd575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128c25760009d612893575b5082519d8e61286181611164565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128bb575b6128aa81836111d4565b8101031261194e5750519b38612853565b503d6128a0565b83513d6000823e3d90fd5b6128e4908493929f3d8091833e61226c81836111d4565b9d9091612823565b85513d6000823e3d90fd5b9150988282813d8311612922575b61290f81836111d4565b8101031261194e57508b905198386127e4565b503d612905565b84513d6000823e3d90fd5b61294891953d8091833e61226c81836111d4565b93386127b0565b90918582813d8311612978575b61296681836111d4565b8101031261194e57505190600461276d565b503d61295c565b50513d6000823e3d90fd5b90928382813d8311612a3c575b6129a181836111d4565b8101031261194e5750612a3060e08651926129bb846111b8565b6129c481611a9a565b84526129d260208201611aa8565b60208501526129e2888201611aa8565b888501526129f260608201611abc565b6060850152612a0360808201611abc565b6080850152612a1460a08201611abc565b60a0850152612a2560c08201611abc565b60c0850152016126cc565b60e0820152913861272a565b503d612997565b9190612a4d612662565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065157600092612c2a575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065157600091612bf0575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106515760009d612bbc575b50604051809e612b6882611148565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612be8575b81612bd7602093836111d4565b8101031261194e5750519b38612b59565b3d9150612bca565b906020823d602011612c22575b81612c0a602093836111d4565b8101031261194e5750612c1c906126cc565b38612ad8565b3d9150612bfd565b90916020823d602011612c57575b81612c45602093836111d4565b8101031261194e575051906020612a94565b3d9150612c3856fea2646970667358221220b3b066a8375c5141c37d3b12d314dc547e05d24827a25e994164faecbe83335664736f6c63430008100033", + "object": "0x6080806040523461001657612cac908161001c8239f35b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461106b575080635346cc1914610be3578063c2815c0b14610aa8578063cbe293fa14610a5c578063d4fc9fc6146108d55763ec7d7f7a1461006257600080fd5b3461065a5760e036600319011261065a576004356001600160a01b038116810361065a5761008e611122565b61009661125b565b916001600160401b03806064351161065a5736602360643501121561065a57606435600401351161065a573660246060606435600401350260643501011161065a576084356001600160a01b038116900361065a576004926100f661122f565b6020610100611245565b936000606060405161011181611138565b8281528185820152610121611656565b6040820152015260405196878092631f94a27560e31b825260018060a01b03165afa94851561066757600095610891575b506101626064356004013561170a565b9361017060405195866111fa565b60046064350135808652601f19906101879061170a565b0160005b81811061087a57505060005b6064356004013581106107cf575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa9081156106675760009161079d575b506101fb611656565b5061020582611bef565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106675760009161076b575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561066757600091610739575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa801561066757600060a052610706575b506000821283838103128116908484810313901516176106f057602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106675760009b6106bc575b5061036b6040518060c05261118a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a0608051015151936103cd8561170a565b946103db60405196876111fa565b8086526103ea601f199161170a565b0160005b8181106106a557505060005b60a06080510151805160ff83161015610453579061042d61044e926104266084359160ff851690611766565b5187612a5a565b61043a60ff831689611766565b5261044860ff821688611766565b50611bc5565b6103fa565b5050858585856080519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa90811561066757600091610673575b506080519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6105018261116e565b60c051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa9182156106675760009261062e575b506040519361059c85611138565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b81811061060d5750505082936106029151601f198583030160608601526113d2565b905160808301520390f35b9091956020610120826106236001948b51611271565b0197019291016105e0565b9091506020813d60201161065f575b8161064a602093836111fa565b8101031261065a5751908461058e565b600080fd5b3d915061063d565b6040513d6000823e3d90fd5b90506020813d60201161069d575b8161068e602093836111fa565b8101031261065a57518a6104b9565b3d9150610681565b6020906106b0612679565b82828a010152016103ee565b909a506020813d6020116106e8575b816106d8602093836111fa565b8101031261065a5751993861035b565b3d91506106cb565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610731575b8161071f602093836111fa565b8101031261065a575160a052386102cb565b3d9150610712565b90506020813d602011610763575b81610754602093836111fa565b8101031261065a575138610281565b3d9150610747565b90506020813d602011610795575b81610786602093836111fa565b8101031261065a575138610244565b3d9150610779565b90506020813d6020116107c7575b816107b8602093836111fa565b8101031261065a5751386101f2565b3d91506107ab565b6060606435828202013603602319011261065a576040516107ef81611153565b6064356060830201602401356001600160a01b038116900361065a5760643560608302016024810135825261085391859161082c9060440161121b565b60208201526108436064606086028135010161121b565b6040820152608435908a86611790565b61085d8288611766565b526108688187611766565b5060001981146106f057600101610197565b602090610885611721565b82828a0101520161018b565b9094506020813d6020116108cd575b816108ad602093836111fa565b8101031261065a57516001600160a01b038116810361065a579338610152565b3d91506108a0565b3461065a5760208060031936011261065a576108f76108f261110c565b611bef565b906040519080825282519261018090818385015261098d60018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610960610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a2f578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a4c838f8690600196030187528d516115c1565b9b019301930191949392906109e3565b3461065a57604036600319011261065a57610a7561110c565b6024359060ff8216820361065a57610aa491610a90916126f7565b6040519182916020835260208301906115c1565b0390f35b3461065a5760031960603682011261065a57610ac261110c565b602435906001600160401b039283831161065a576101608091843603011261065a5760405190810181811085821117610bcd57604052610b048360040161121b565b81526024830135602082015260448301356040820152606483013584811161065a57610b36906004369186010161157a565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b6560e4840161121b565b60e082015261010483013561010082015261012483013593841161065a57610144610bb993610b9d610aa4966004369184010161157a565b6101208401520135610140820152610bb361125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461065a57606036600319011261065a57610bfc61110c565b610c04611122565b90610c0d61125b565b610c15611656565b50610c1f82611bef565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561066757600093611037575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561066757600094611003575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561066757600091610fd1575b506000821283838103128116908484810313901516176106f057879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106675760009b610f9d575b5060206040519e8f90610d828261118a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610dc78461170a565b93610dd560405195866111fa565b808552610de4601f199161170a565b0160005b818110610f8657505060005b60a0860151805160ff83161015610e3b5790610e1b88610426610e369460ff851690611766565b610e2860ff831688611766565b5261044860ff821687611766565b610df4565b610e938387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561066757600092610f50575b610aa4995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ef68261116e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113d2565b91506020893d602011610f7e575b81610f6b602093836111fa565b8101031261065a57610aa4985191610eaf565b3d9150610f5e565b602090610f91612679565b82828901015201610de8565b909a506020813d602011610fc9575b81610fb9602093836111fa565b8101031261065a57519938610d70565b3d9150610fac565b90506020813d602011610ffb575b81610fec602093836111fa565b8101031261065a575188610ce3565b3d9150610fdf565b9093506020813d60201161102f575b8161101f602093836111fa565b8101031261065a57519286610c9d565b3d9150611012565b9092506020813d602011611063575b81611053602093836111fa565b8101031261065a57519185610c5f565b3d9150611046565b3461065a5760e036600319011261065a5761108461110c565b6001600160a01b0390602435828116810361065a57606036604319011261065a576110ae84611153565b604435838116810361065a578452606435838116810361065a576020850152608435928316830361065a57836110fd9360406101209601526110ee61122f565b916110f7611245565b93611790565b61110a6040518092611271565bf35b600435906001600160a01b038216820361065a57565b602435906001600160a01b038216820361065a57565b608081019081106001600160401b03821117610bcd57604052565b606081019081106001600160401b03821117610bcd57604052565b6101c081019081106001600160401b03821117610bcd57604052565b61016081019081106001600160401b03821117610bcd57604052565b61012081019081106001600160401b03821117610bcd57604052565b61018081019081106001600160401b03821117610bcd57604052565b61010081019081106001600160401b03821117610bcd57604052565b90601f801991011681019081106001600160401b03821117610bcd57604052565b35906001600160a01b038216820361065a57565b60a435906001600160a01b038216820361065a57565b60c435906001600160a01b038216820361065a57565b604435906001600160a01b038216820361065a57565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161144461016093846102808801526103208701906112f6565b9060e0830151166102a0860152610100808301516102c087015261147c61012092838501516101bf19898303016102e08a01526112f6565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115305750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b848061154f8f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bcd57601f01601f191660200190565b81601f8201121561065a578035906115918261155f565b9261159f60405194856111fa565b8284526020838301011161065a57816000926020809301838601378301015290565b9061164860018060a01b0380845116835260208401516020840152604084015160408401526115ff60608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b604051906116638261116e565b6040516101a0836116738361118a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bcd5760051b60200190565b6040519061172e826111a6565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b805182101561177a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361179d611721565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561066757600095611a53575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561066757600092611a1f575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610667576000946119eb575b506040516370a0823160e01b815287810186905294602086602481855afa958615610667576000966119b7575b50604051906370a0823160e01b825288820152602081602481855afa968715610667578a9160009861197f575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561066757600098611948575b506040519861191a8a6111a6565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611977575b81611963602093836111fa565b81010312611974575051963861190c565b80fd5b3d9150611956565b9150966020823d6020116119af575b8161199b602093836111fa565b8101031261197457505195899060246118d0565b3d915061198e565b90956020823d6020116119e3575b816119d2602093836111fa565b8101031261197457505194386118a3565b3d91506119c5565b90936020823d602011611a17575b81611a06602093836111fa565b810103126119745750519238611876565b3d91506119f9565b90916020823d602011611a4b575b81611a3a602093836111fa565b81010312611974575051903861183e565b3d9150611a2d565b6020959195813d602011611ab8575b81611a6f602093836111fa565b81010312611ab4576040519160208301908382106001600160401b03831117611aa157506040525181529360206117f5565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a62565b519060ff8216820361065a57565b51906001600160a01b038216820361065a57565b51906001600160401b038216820361065a57565b51906cffffffffffffffffffffffffff8216820361065a57565b60208183031261065a578051906001600160401b03821161065a570181601f8201121561065a578051611b428161155f565b92611b5060405194856111fa565b8184526020828401011161065a57611b6e91602080850191016112d3565b90565b60405190611b7e8261118a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106f05760010190565b6301e133809080600019048211811515166106f0570290565b60e0526000610160604051611c03816111c2565b604051611c0f816111de565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa80156106675760006101405261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa91821561066757600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa918215610667576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa92831561066757600093612591575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa9081156106675760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa9485156106675760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa918215610667576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa948515610667576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa9889156106675760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa9384156106675760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561066757600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa9485156106675760009561235b575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa80156106675760006101205261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156106675760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610667576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561066757600061016052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106675760009261226d575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561066757600095612239575b506040516101808181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa806101a05215610667576000906101a051612201575b61207760405180610100526111de565b60018060a01b0316610100515260206101005101526101605160406101005101526060610100510152608061010051015260018060a01b031660a061010051015260c061010051015260e06101005101526120d760ff610140511661170a565b976120e5604051998a6111fa565b60ff61014051168952601f1961210060ff610140511661170a565b0160005b8181106121e957505060005b60ff610140511660ff82161015612151578061213161214c9260e0516126f7565b61213e60ff83168d611766565b5261044860ff82168c611766565b612110565b5091939597909294969861217b6001600160401b03612174816101205116611bd6565b9216611bd6565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111c2565b610100518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b71565b9201015201612104565b905060203d602011612232575b61221b81610180516111fa565b60206101805180928101031261065a575190612067565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261065a57519338612018565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611b10565b9038611fd8565b6020813d6020116122be575b816122ab602093836111fa565b8101031261065a57516101605238611fa8565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f77565b909b506020813d602011612317575b816122ff602093836111fa565b8101031261065a5761231090611ae2565b9a38611f47565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b8101031261065a5761234990611ae2565b6101205238611f11565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b8101031261065a576040519061238f826111de565b61239881611ae2565b82526123a660208201611ae2565b60208301526123b760408201611ae2565b60408301526123c860608201611ae2565b60608301526123d960808201611af6565b60808301526123ea60a08201611af6565b60a083015260c081015164ffffffffff8116810361065a5760c08301526124139060e001611ac0565b60e08201529338611ed3565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261065a57519138611ea1565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261065a57519238611e70565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261065a57519738611e3f565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261065a57519338611e0e565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261065a57519038611ddd565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261065a57519338611dac565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b8101031261065a575138611d7b565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261065a57519138611d46565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b8101031261065a576125f290611ace565b9038611d15565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b8101031261065a5761262e90611ace565b9038611ce4565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b8101031261065a5761266790611ac0565b6101405238611cb3565b3d9150612649565b604051906126868261116e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361065a57565b90612700611b71565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161118a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119745750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261197457508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611974575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119745750612a4760e08651926129d2846111de565b6129db81611ac0565b84526129e960208201611ace565b60208501526129f9888201611ace565b88850152612a0960608201611ae2565b6060850152612a1a60808201611ae2565b6080850152612a2b60a08201611ae2565b60a0850152612a3c60c08201611ae2565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561066757600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561066757600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106675760009d612bd3575b50604051809e612b7f8261116e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119745750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119745750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611974575051906020612aab565b3d9150612c4f56fea26469706673582212208459a3957dd5de7ced8901e02eca616c894cc774f6c517f2383cf460cc41b09d64736f6c63430008100033", "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec14611045575080635346cc1914610bcd578063c2815c0b14610a92578063cbe293fa14610a46578063d4fc9fc6146108bf5763ec7d7f7a1461006257600080fd5b346106445760e0366003190112610644576004356001600160a01b03811690819003610644576100906110fc565b610098611235565b916001600160401b038060643511610644573660236064350112156106445760643560040135116106445736602460606064356004013502606435010111610644576084356001600160a01b0381169003610644576004926100f8611209565b602061010261121f565b936000606060405161011381611112565b8281528185820152610123611630565b6040820152015260405196878092631f94a27560e31b82525afa9485156106515760009561087b575b5061015c606435600401356116e4565b9361016a60405195866111d4565b60046064350135808652601f1990610181906116e4565b0160005b81811061086457505060005b6064356004013581106107b9575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa90811561065157600091610787575b506101f5611630565b506101ff82611bc9565b60c0526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa90811561065157600091610755575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561065157600091610723575b5060c0515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa80156106515760006080526106f0575b5082828103116106da5760249260c051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106515760009b6106a6575b506103556040518060a052611164565b60a05152608051602060a051015203604060a0510152606060a0510152608060a051015260a08051015260c060a051015260e060a051015261010060a051015261012060a051015261014060a051015260a060c051015151936103b7856116e4565b946103c560405196876111d4565b8086526103d4601f19916116e4565b0160005b81811061068f57505060005b60a060c0510151805160ff8316101561043d5790610417610438926104106084359160ff851690611740565b5187612a43565b61042460ff831689611740565b5261043260ff821688611740565b50611b9f565b6103e4565b50508585858560c0519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156106515760009161065d575b5060c0519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6104eb82611148565b60a051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa91821561065157600092610618575b506040519361058685611112565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b8181106105f75750505082936105ec9151601f198583030160608601526113ac565b905160808301520390f35b90919560206101208261060d6001948b5161124b565b0197019291016105ca565b9091506020813d602011610649575b81610634602093836111d4565b8101031261064457519084610578565b600080fd5b3d9150610627565b6040513d6000823e3d90fd5b90506020813d602011610687575b81610678602093836111d4565b8101031261064457518a6104a3565b3d915061066b565b60209061069a612662565b82828a010152016103d8565b909a506020813d6020116106d2575b816106c2602093836111d4565b8101031261064457519938610345565b3d91506106b5565b634e487b7160e01b600052601160045260246000fd5b6020813d60201161071b575b81610709602093836111d4565b810103126106445751608052386102c5565b3d91506106fc565b90506020813d60201161074d575b8161073e602093836111d4565b8101031261064457513861027b565b3d9150610731565b90506020813d60201161077f575b81610770602093836111d4565b8101031261064457513861023e565b3d9150610763565b90506020813d6020116107b1575b816107a2602093836111d4565b810103126106445751386101ec565b3d9150610795565b60606064358282020136036023190112610644576040516107d98161112d565b6064356060830201602401356001600160a01b03811690036106445760643560608302016024810135825261083d918591610816906044016111f5565b602082015261082d606460608602813501016111f5565b6040820152608435908a8661176a565b6108478288611740565b526108528187611740565b5060001981146106da57600101610191565b60209061086f6116fb565b82828a01015201610185565b9094506020813d6020116108b7575b81610897602093836111d4565b8101031261064457516001600160a01b038116810361064457933861014c565b3d915061088a565b3461064457602080600319360112610644576108e16108dc6110e6565b611bc9565b906040519080825282519261018090818385015261097760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e060808801519761094a610100998a6102208b01526102a08a01906112d0565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112d0565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a19578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a36838f8690600196030187528d5161159b565b9b019301930191949392906109cd565b3461064457604036600319011261064457610a5f6110e6565b6024359060ff8216820361064457610a8e91610a7a916126e0565b60405191829160208352602083019061159b565b0390f35b346106445760031960603682011261064457610aac6110e6565b602435906001600160401b039283831161064457610160809184360301126106445760405190810181811085821117610bb757604052610aee836004016111f5565b81526024830135602082015260448301356040820152606483013584811161064457610b209060043691860101611554565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b4f60e484016111f5565b60e082015261010483013561010082015261012483013593841161064457610144610ba393610b87610a8e9660043691840101611554565b6101208401520135610140820152610b9d611235565b91612a43565b6040519182916020835260208301906112f5565b634e487b7160e01b600052604160045260246000fd5b3461064457606036600319011261064457610be66110e6565b610bee6110fc565b90610bf7611235565b610bff611630565b50610c0982611bc9565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561065157600093611011575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561065157600094610fdd575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561065157600091610fab575b5082828103116106da57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106515760009b610f77575b5060206040519e8f90610d5c82611164565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610da1846116e4565b93610daf60405195866111d4565b808552610dbe601f19916116e4565b0160005b818110610f6057505060005b60a0860151805160ff83161015610e155790610df588610410610e109460ff851690611740565b610e0260ff831688611740565b5261043260ff821687611740565b610dce565b610e6d8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561065157600092610f2a575b610a8e995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ed082611148565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113ac565b91506020893d602011610f58575b81610f45602093836111d4565b8101031261064457610a8e985191610e89565b3d9150610f38565b602090610f6b612662565b82828901015201610dc2565b909a506020813d602011610fa3575b81610f93602093836111d4565b8101031261064457519938610d4a565b3d9150610f86565b90506020813d602011610fd5575b81610fc6602093836111d4565b81010312610644575188610ccd565b3d9150610fb9565b9093506020813d602011611009575b81610ff9602093836111d4565b8101031261064457519286610c87565b3d9150610fec565b9092506020813d60201161103d575b8161102d602093836111d4565b8101031261064457519185610c49565b3d9150611020565b346106445760e03660031901126106445761105e6110e6565b6001600160a01b03906024358281168103610644576060366043190112610644576110888461112d565b60443583811681036106445784526064358381168103610644576020850152608435928316830361064457836110d79360406101209601526110c8611209565b916110d161121f565b9361176a565b6110e4604051809261124b565bf35b600435906001600160a01b038216820361064457565b602435906001600160a01b038216820361064457565b608081019081106001600160401b03821117610bb757604052565b606081019081106001600160401b03821117610bb757604052565b6101c081019081106001600160401b03821117610bb757604052565b61016081019081106001600160401b03821117610bb757604052565b61012081019081106001600160401b03821117610bb757604052565b61018081019081106001600160401b03821117610bb757604052565b61010081019081106001600160401b03821117610bb757604052565b90601f801991011681019081106001600160401b03821117610bb757604052565b35906001600160a01b038216820361064457565b60a435906001600160a01b038216820361064457565b60c435906001600160a01b038216820361064457565b604435906001600160a01b038216820361064457565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112c05750506000910152565b81810151838201526020016112b0565b906020916112e9815180928185528580860191016112ad565b601f01601f1916010190565b9061139360018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261134760a08501516101c08060a08701528501906112d0565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112d0565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161141e61016093846102808801526103208701906112d0565b9060e0830151166102a0860152610100808301516102c087015261145661012092838501516101bf19898303016102e08a01526112d0565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061150a5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806115298f93600194601f19878303018852516112f5565b9e019301930191949392906114bb565b6001600160401b038111610bb757601f01601f191660200190565b81601f820112156106445780359061156b82611539565b9261157960405194856111d4565b8284526020838301011161064457816000926020809301838601378301015290565b9061162260018060a01b0380845116835260208401516020840152604084015160408401526115d960608501516101608060608701528501906112d0565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112d0565b916101408091015191015290565b6040519061163d82611148565b6040516101a08361164d83611164565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bb75760051b60200190565b6040519061170882611180565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b80518210156117545760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91939092936117776116fb565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561065157600095611a2d575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa918215610651576000926119f9575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610651576000946119c5575b506040516370a0823160e01b815287810186905294602086602481855afa95861561065157600096611991575b50604051906370a0823160e01b825288820152602081602481855afa968715610651578a91600098611959575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561065157600098611922575b50604051986118f48a611180565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611951575b8161193d602093836111d4565b8101031261194e57505196386118e6565b80fd5b3d9150611930565b9150966020823d602011611989575b81611975602093836111d4565b8101031261194e57505195899060246118aa565b3d9150611968565b90956020823d6020116119bd575b816119ac602093836111d4565b8101031261194e575051943861187d565b3d915061199f565b90936020823d6020116119f1575b816119e0602093836111d4565b8101031261194e5750519238611850565b3d91506119d3565b90916020823d602011611a25575b81611a14602093836111d4565b8101031261194e5750519038611818565b3d9150611a07565b6020959195813d602011611a92575b81611a49602093836111d4565b81010312611a8e576040519160208301908382106001600160401b03831117611a7b57506040525181529360206117cf565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a3c565b519060ff8216820361064457565b51906001600160a01b038216820361064457565b51906001600160401b038216820361064457565b51906cffffffffffffffffffffffffff8216820361064457565b602081830312610644578051906001600160401b038211610644570181601f82011215610644578051611b1c81611539565b92611b2a60405194856111d4565b8184526020828401011161064457611b4891602080850191016112ad565b90565b60405190611b5882611164565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106da5760010190565b6301e133809080600019048211811515166106da570290565b610100526000610160604051611bde8161119c565b604051611bea816111b8565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0361010051165afa801561065157600061014052612626575b506040519063c55dae6360e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ea575b506040519063e7dad6bd60e01b825260208260048160018060a01b0361010051165afa918215610651576000926125ae575b506040519163300e6beb60e01b835260208360048160018060a01b0361010051165afa9283156106515760009361257a575b506040516355d3f8af60e11b815261010051602090829060049082906001600160a01b03165afa90811561065157600091612548575b506040519363189bb2f160e01b855260208560048160018060a01b0361010051165afa94851561065157600095612514575b5060405190634f54cd2d60e11b825260208260048160018060a01b0361010051165afa918215610651576000926124e0575b50604051936349b270c560e11b855260208560048160018060a01b0361010051165afa948515610651576000956124ac575b5060405197637eb7113160e01b895260208960048160018060a01b0361010051165afa98891561065157600099612478575b50604051926318160ddd60e01b845260208460048160018060a01b0361010051165afa93841561065157600094612444575b506040519163020a17bd60e61b835260208360048160018060a01b0361010051165afa92831561065157600093612410575b5060405163b9f0baf760e01b81526101008051919591869060049082906001600160a01b03165afa94851561065157600095612344575b50604051634fd41dad60e11b8152600481018d905261010051602090829060249082906001600160a01b03165afa801561065157600061012052612308575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0361010051165afa9b8c156106515760009c6122cc575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610651576000946122af575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156106515760006101605261227b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561065157600092612256575b506040516341976e0960e01b81526001600160a01b0384811660048301526101005191959160209187916024918391165afa94851561065157600095612222575b506040516101808181526370a0823160e01b9091526101005181516001600160a01b039182166004909101528151919291602091602490829085165afa916101a0928084521561065157600092516121ea575b506120696040518060e0526111b8565b60018060a01b031660e05152602060e051015261016051604060e0510152606060e0510152608060e051015260018060a01b031660a060e051015260c060e051015260e0805101526120c060ff61014051166116e4565b976120ce604051998a6111d4565b60ff61014051168952601f196120e960ff61014051166116e4565b0160005b8181106121d257505060005b60ff610140511660ff8216101561213b578061211b61213692610100516126e0565b61212860ff83168d611740565b5261043260ff82168c611740565b6120f9565b509193959790929496986121656001600160401b0361215e816101205116611bb0565b9216611bb0565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a61218f8c61119c565b60e0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121e0611b4b565b92010152016120ed565b9091506020903d60201161221a575b8061220783602093516111d4565b5180928101031261064457519038612059565b3d91506121f9565b9094506020813d60201161224e575b8161223e602093836111d4565b8101031261064457519338612006565b3d9150612231565b6122749192503d806000833e61226c81836111d4565b810190611aea565b9038611fc5565b6020813d6020116122a7575b81612294602093836111d4565b8101031261064457516101605238611f95565b3d9150612287565b6122c59194503d806000833e61226c81836111d4565b9238611f64565b909b506020813d602011612300575b816122e8602093836111d4565b81010312610644576122f990611abc565b9a38611f34565b3d91506122db565b6020813d60201161233c575b81612321602093836111d4565b810103126106445761233290611abc565b6101205238611efd565b3d9150612314565b909450610100813d61010011612408575b8161236361010093836111d4565b810103126106445760405190612378826111b8565b61238181611abc565b825261238f60208201611abc565b60208301526123a060408201611abc565b60408301526123b160608201611abc565b60608301526123c260808201611ad0565b60808301526123d360a08201611ad0565b60a083015260c081015164ffffffffff811681036106445760c08301526123fc9060e001611a9a565b60e08201529338611ebe565b3d9150612355565b9092506020813d60201161243c575b8161242c602093836111d4565b8101031261064457519138611e87565b3d915061241f565b9093506020813d602011612470575b81612460602093836111d4565b8101031261064457519238611e55565b3d9150612453565b9098506020813d6020116124a4575b81612494602093836111d4565b8101031261064457519738611e23565b3d9150612487565b9094506020813d6020116124d8575b816124c8602093836111d4565b8101031261064457519338611df1565b3d91506124bb565b9091506020813d60201161250c575b816124fc602093836111d4565b8101031261064457519038611dbf565b3d91506124ef565b9094506020813d602011612540575b81612530602093836111d4565b8101031261064457519338611d8d565b3d9150612523565b90506020813d602011612572575b81612563602093836111d4565b81010312610644575138611d5b565b3d9150612556565b9092506020813d6020116125a6575b81612596602093836111d4565b8101031261064457519138611d25565b3d9150612589565b9091506020813d6020116125e2575b816125ca602093836111d4565b81010312610644576125db90611aa8565b9038611cf3565b3d91506125bd565b9091506020813d60201161261e575b81612606602093836111d4565b810103126106445761261790611aa8565b9038611cc1565b3d91506125f9565b6020813d60201161265a575b8161263f602093836111d4565b810103126106445761265090611a9a565b6101405238611c8f565b3d9150612632565b6040519061266f82611148565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361064457565b906126e9611b4b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa9283156128ec5760009361298a575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561297f5760009261294f575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128c257908c97969594939291600095612934575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561292957908c9160009a6128f7575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156128ec5760009e6128cd575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128c25760009d612893575b5082519d8e61286181611164565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128bb575b6128aa81836111d4565b8101031261194e5750519b38612853565b503d6128a0565b83513d6000823e3d90fd5b6128e4908493929f3d8091833e61226c81836111d4565b9d9091612823565b85513d6000823e3d90fd5b9150988282813d8311612922575b61290f81836111d4565b8101031261194e57508b905198386127e4565b503d612905565b84513d6000823e3d90fd5b61294891953d8091833e61226c81836111d4565b93386127b0565b90918582813d8311612978575b61296681836111d4565b8101031261194e57505190600461276d565b503d61295c565b50513d6000823e3d90fd5b90928382813d8311612a3c575b6129a181836111d4565b8101031261194e5750612a3060e08651926129bb846111b8565b6129c481611a9a565b84526129d260208201611aa8565b60208501526129e2888201611aa8565b888501526129f260608201611abc565b6060850152612a0360808201611abc565b6080850152612a1460a08201611abc565b60a0850152612a2560c08201611abc565b60c0850152016126cc565b60e0820152913861272a565b503d612997565b9190612a4d612662565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561065157600092612c2a575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561065157600091612bf0575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106515760009d612bbc575b50604051809e612b6882611148565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612be8575b81612bd7602093836111d4565b8101031261194e5750519b38612b59565b3d9150612bca565b906020823d602011612c22575b81612c0a602093836111d4565b8101031261194e5750612c1c906126cc565b38612ad8565b3d9150612bfd565b90916020823d602011612c57575b81612c45602093836111d4565b8101031261194e575051906020612a94565b3d9150612c3856fea2646970667358221220b3b066a8375c5141c37d3b12d314dc547e05d24827a25e994164faecbe83335664736f6c63430008100033", - "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1931:25;;;;;;;;;1061:2431;1931:25;;;1061:2431;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::i;:::-;;;;;;;;;2078:10;;1061:2431;2090:15;1061:2431;;;;;2090:15;;;;-1:-1:-1;;1061:2431:0;;-1:-1:-1;;;2262:33:0;;-1:-1:-1;;;;;1061:2431:0;;;;;2262:33;;1061:2431;;;;;;;;;;;;;;2262:33;1061:2431;-1:-1:-1;;;;;1061:2431:0;;2262:33;;;;;;;1061:2431;2262:33;;;2073:129;1061:2431;;;:::i;:::-;;8386:12:1;;;:::i;:::-;;;1061:2431:0;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8435:24:1;;1061:2431:0;;;;;;;;;;;8435:24:1;;;;;;;1061:2431:0;8435:24:1;;;2073:129:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8495:30:1;;1061:2431:0;;;;;;;;;;;8495:30:1;;;;;;;1061:2431:0;8495:30:1;;;2073:129:0;-1:-1:-1;8386:12:1;8622:18;;1061:2431:0;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8669:70:1;;1061:2431:0;;;;;;;;;;;;;;;;;8669:70:1;;;;;;1061:2431:0;8669:70:1;;;;2073:129:0;1061:2431;;;;;;;;;8819:18:1;8386:12;8819:18;;:25;1061:2431:0;8819:25:1;;;8862:27;1061:2431:0;8862:27:1;;1061:2431:0;;8908:28:1;;1061:2431:0;8950:23:1;8669:70;8950:23;;;1061:2431:0;;;;;;;8992:28:1;;1061:2431:0;;9035:24:1;8386:12;9035:24;;1061:2431:0;9083:33:1;1061:2431:0;9083:33:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;9139:54:1;;1061:2431:0;;;;;;;;;9139:54:1;;1061:2431:0;9139:54:1;;;;;;;1061:2431:0;9139:54:1;;;2073:129:0;1061:2431;;;;;;;;:::i;:::-;;;;8669:70:1;1061:2431:0;;;8577:623:1;;1061:2431:0;;;;8577:623:1;;1061:2431:0;;;8577:623:1;;1061:2431:0;8669:70:1;1061:2431:0;8577:623:1;;1061:2431:0;;8577:623:1;;;1061:2431:0;8386:12:1;1061:2431:0;8577:623:1;;1061:2431:0;;;8577:623:1;;1061:2431:0;8577:623:1;1061:2431:0;8577:623:1;;1061:2431:0;8577:623:1;1061:2431:0;8577:623:1;;1061:2431:0;8577:623:1;1061:2431:0;8577:623:1;;1061:2431:0;;8386:12:1;9302:25;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1061:2431:0;9402:3:1;1061:2431:0;8386:12:1;9302:25;;9368;1061:2431:0;;;;;9364:36:1;;;;1061:2431:0;9427:71:1;9402:3;1061:2431:0;9460:28:1;1061:2431:0;;;;;;9460:28:1;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;1061:2431:0;;;9415:83:1;;:::i;:::-;;;1061:2431:0;;;9415:83:1;;:::i;:::-;;9402:3;:::i;:::-;9351:11;;9364:36;;;;;;;8386:12;9610:26;;1061:2431:0;9610:26:1;;1061:2431:0;9671:32:1;1061:2431:0;9671:32:1;;1061:2431:0;9738:32:1;1061:2431:0;;8669:70:1;1061:2431:0;9738:32:1;;1061:2431:0;9791:18:1;;1061:2431:0;;;;;;;;;;;9836:32:1;;1061:2431:0;;;;;;;;;9836:32:1;;1061:2431:0;;;;;;;;;;;;9836:32:1;;;;;;;1061:2431:0;9836:32:1;;;9346:159;9921:16;8386:12;9921:16;;8386:12;9921:16;;1061:2431:0;;;;;;;;;;9973:15:1;10011:20;1061:2431:0;10011:20:1;;1061:2431:0;10063:29:1;8577:623;10063:29;;1061:2431:0;10115:20:1;8577:623;10115:20;;1061:2431:0;10167:29:1;8577:623;10167:29;;1061:2431:0;10226:27:1;1061:2431:0;10226:27:1;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;9524:738:1;;1061:2431:0;;9524:738:1;1061:2431:0;;9524:738:1;;1061:2431:0;8669:70:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;8386:12:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;9524:738:1;;;1061:2431:0;9524:738:1;;;1061:2431:0;;;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;2411:38;1061:2431;2411:38;;;;;;;1061:2431;2411:38;;;9346:159:1;1061:2431:0;;;;;;;:::i;:::-;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;;;;;;;;;;;;;;;;;8669:70:1;1061:2431:0;;;;;;;;;;8386:12:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8669:70:1;1061:2431:0;;;;;;;;;;;8577:623:1;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;2411:38;;;;1061:2431;2411:38;;1061:2431;2411:38;;;;;;1061:2431;2411:38;;;:::i;:::-;;;1061:2431;;;;;2411:38;;;;1061:2431;;;;2411:38;;;-1:-1:-1;2411:38:0;;;1061:2431;;;;;;;;;9836:32:1;;;1061:2431:0;9836:32:1;;1061:2431:0;9836:32:1;;;;;;1061:2431:0;9836:32:1;;;:::i;:::-;;;1061:2431:0;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;1061:2431:0;;;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;1061:2431:0;9139:54:1;;1061:2431:0;9139:54:1;;;;;;1061:2431:0;9139:54:1;;;:::i;:::-;;;1061:2431:0;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;1061:2431:0;;;;;;;;;;;;8669:70:1;1061:2431:0;8669:70:1;;1061:2431:0;8669:70:1;;;;;;1061:2431:0;8669:70:1;;;:::i;:::-;;;1061:2431:0;;;;;8669:70:1;;;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;1061:2431:0;8495:30:1;;1061:2431:0;8495:30:1;;;;;;1061:2431:0;8495:30:1;;;:::i;:::-;;;1061:2431:0;;;;;8495:30:1;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;1061:2431:0;8435:24:1;;1061:2431:0;8435:24:1;;;;;;1061:2431:0;8435:24:1;;;:::i;:::-;;;1061:2431:0;;;;;8435:24:1;;;;;;-1:-1:-1;8435:24:1;;2262:33:0;;;1061:2431;2262:33;;1061:2431;2262:33;;;;;;1061:2431;2262:33;;;:::i;:::-;;;1061:2431;;;;;2262:33;;;;;;-1:-1:-1;2262:33:0;;2107:3;1061:2431;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;2132:63;;1061:2431;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2132:63;;;;:::i;:::-;2120:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2431:0;;;;;;2078:10;;1061:2431;;;;;:::i;:::-;;;;;;;;;;1931:25;;;;1061:2431;1931:25;;1061:2431;1931:25;;;;;;1061:2431;1931:25;;;:::i;:::-;;;1061:2431;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;1931:25;;;;;;;-1:-1:-1;1931:25:0;;1061:2431;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8386:12:1;;;:::i;:::-;1061:2431:0;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;8435:24:1;;1061:2431:0;;;;;;;8435:24:1;;1061:2431:0;;;;;;;;8435:24:1;;;;;;;1061:2431:0;8435:24:1;;;1061:2431:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;8495:30:1;;1061:2431:0;;;;8435:24:1;;1061:2431:0;;;;;;;;8495:30:1;;;;;;;1061:2431:0;8495:30:1;;;1061:2431:0;-1:-1:-1;8622:18:1;;1061:2431:0;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;8669:70:1;;1061:2431:0;;;;;;;;;;;;;8435:24:1;1061:2431:0;;;;8669:70:1;;;;;;;1061:2431:0;8669:70:1;;;1061:2431:0;;;;;;;;;8819:18:1;;;;:25;1061:2431:0;8819:25:1;;;8862:27;1061:2431:0;8862:27:1;;1061:2431:0;;8908:28:1;;1061:2431:0;8950:23:1;;;;;1061:2431:0;;;;;;;8992:28:1;;1061:2431:0;;9035:24:1;;;;1061:2431:0;9083:33:1;8435:24;9083:33;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;9139:54:1;;1061:2431:0;;;;;;;9139:54:1;;1061:2431:0;9139:54:1;;;;;;;1061:2431:0;9139:54:1;;;1061:2431:0;;8435:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;8577:623:1;1061:2431:0;;;8577:623:1;;1061:2431:0;;8577:623:1;;1061:2431:0;8950:23:1;8577:623;;1061:2431:0;;8577:623:1;;1061:2431:0;9035:24:1;8577:623;;1061:2431:0;;8577:623:1;;1061:2431:0;8577:623:1;;;1061:2431:0;8577:623:1;;;1061:2431:0;8577:623:1;;;1061:2431:0;;9302:25:1;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1061:2431:0;9402:3:1;1061:2431:0;9302:25:1;;9368;1061:2431:0;;;;;9364:36:1;;;;1061:2431:0;9427:71:1;1061:2431:0;9460:28:1;9402:3;1061:2431:0;;;;9460:28:1;;:::i;9427:71::-;9415:83;1061:2431:0;;;9415:83:1;;:::i;:::-;;;1061:2431:0;;;9415:83:1;;:::i;9402:3::-;9351:11;;9364:36;9836:32;9364:36;;;;;;8435:24;9610:26;;1061:2431:0;9671:32:1;1061:2431:0;9671:32:1;;1061:2431:0;9738:32:1;8435:24;1061:2431:0;9738:32:1;;1061:2431:0;9791:18:1;8950:23;9791:18;;1061:2431:0;;;;;;;;;;;;9836:32:1;;;1061:2431:0;9836:32:1;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;9836:32:1;;;-1:-1:-1;;;;;1061:2431:0;9836:32:1;;;;;;;1061:2431:0;9836:32:1;;;9346:159;1061:2431:0;9921:16:1;;9035:24;9921:16;;1061:2431:0;;;;;;;;9973:15:1;10011:20;1061:2431:0;10011:20:1;;1061:2431:0;10063:29:1;8577:623;10063:29;;1061:2431:0;10115:20:1;8577:623;10115:20;;1061:2431:0;10167:29:1;1061:2431:0;8577:623:1;10167:29;;1061:2431:0;10226:27:1;;1061:2431:0;;8435:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;9524:738:1;1061:2431:0;;9524:738:1;;1061:2431:0;;9524:738:1;;1061:2431:0;8950:23:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;9035:24:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;8577:623:1;9524:738;;1061:2431:0;;9524:738:1;;1061:2431:0;9524:738:1;;;1061:2431:0;9524:738:1;;;1061:2431:0;;;;;;8435:24:1;1061:2431:0;;8435:24:1;1061:2431:0;;;;:::i;9836:32:1:-;;;8435:24;9836:32;;8435:24;9836:32;;;;;;8435:24;9836:32;;;:::i;:::-;;;1061:2431:0;;;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;1061:2431:0;8435:24:1;1061:2431:0;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;8435:24;9139:54;;8435:24;9139:54;;;;;;8435:24;9139:54;;;:::i;:::-;;;1061:2431:0;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;8669:70;;;8435:24;8669:70;;8435:24;8669:70;;;;;;8435:24;8669:70;;;:::i;:::-;;;1061:2431:0;;;;;8669:70:1;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;;8435:24;8495:30;;8435:24;8495:30;;;;;;8435:24;8495:30;;;:::i;:::-;;;1061:2431:0;;;;;8495:30:1;;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;8435:24:1;;;;;;;-1:-1:-1;8435:24:1;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2467:1023;;;;;;1061:2431;;:::i;:::-;-1:-1:-1;1061:2431:0;;2768:29;;;;1061:2431;2833:31;;;;1061:2431;;;-1:-1:-1;;;2930:38:0;;-1:-1:-1;;;;;1061:2431:0;;;2930:38;;;;1061:2431;;;;;2930:38;;1061:2431;;;;;;;;;;;;2768:29;1061:2431;;;;;;;2930:38;;;;;;;-1:-1:-1;2930:38:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;;-1:-1:-1;;;3163:34:0;;-1:-1:-1;;;;;1061:2431:0;;;3163:34;;;1061:2431;;;;;2768:29;1061:2431;;;;;;;;;;2768:29;;1061:2431;;;;;3163:34;;;;;;;;;;-1:-1:-1;3163:34:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3216:25:0;;-1:-1:-1;;;;;1061:2431:0;;;3216:25;;;1061:2431;;;;2768:29;1061:2431;;;3216:25;;;;;;;;-1:-1:-1;3216:25:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3270:34:0;;;;;1061:2431;;;;2768:29;1061:2431;;;3270:34;;;;;;;;-1:-1:-1;3270:34:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;3335:34;;;;;1061:2431;2768:29;3335:34;1061:2431;3335:34;;;;;;;;;;;-1:-1:-1;3335:34:0;;;2467:1023;-1:-1:-1;1061:2431:0;2833:31;1061:2431;-1:-1:-1;;;3434:42:0;;;;;1061:2431;;;;;;2768:29;;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;3434:42;;;;;;;-1:-1:-1;3434:42:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;:::i;:::-;;;2768:29;2988:497;;1061:2431;2833:31;2988:497;;1061:2431;2988:497;;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;2467:1023;:::o;3434:42::-;;;2768:29;3434:42;;2768:29;3434:42;;;;;;2768:29;3434:42;;;:::i;:::-;;;1061:2431;;;;;;3434:42;;;;1061:2431;;;3434:42;;;-1:-1:-1;3434:42:0;;3335:34;;;;2768:29;3335:34;;2768:29;3335:34;;;;;;2768:29;3335:34;;;:::i;:::-;;;1061:2431;;;;-1:-1:-1;1061:2431:0;;;;;3335:34;;;;;-1:-1:-1;3335:34:0;;3270;;;2768:29;3270:34;;2768:29;3270:34;;;;;;2768:29;3270:34;;;:::i;:::-;;;1061:2431;;;;;;3270:34;;;;;;;-1:-1:-1;3270:34:0;;3216:25;;;2768:29;3216:25;;2768:29;3216:25;;;;;;2768:29;3216:25;;;:::i;:::-;;;1061:2431;;;;;;3216:25;;;;;;;-1:-1:-1;3216:25:0;;3163:34;;;2768:29;3163:34;;2768:29;3163:34;;;;;;2768:29;3163:34;;;:::i;:::-;;;1061:2431;;;;;;3163:34;;;;;;;-1:-1:-1;3163:34:0;;2930:38;2768:29;2930:38;;;;;2768:29;2930:38;;;;;;2768:29;2930:38;;;:::i;:::-;;;1061:2431;;;;2833:31;1061:2431;;2768:29;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;-1:-1:-1;2833:31:0;1061:2431;;;;;2768:29;2930:38;;1061:2431;-1:-1:-1;;;1061:2431:0;;;;;;;;;;;;2930:38;;;-1:-1:-1;2930:38:0;;1061:2431;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2431:0;;;;4218:18:1;;;;;;;;;;;:::o;6180:2007::-;;;-1:-1:-1;1061:2431:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;6271:17:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6271:17:1;;;;;;-1:-1:-1;1061:2431:0;6271:17:1;;;6180:2007;1061:2431:0;;;;;;;6314:17:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;;6180:2007;1061:2431:0;;;;;;;6366:26:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;;6180:2007;1061:2431:0;;;;;;;6415:21:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6468:26:1;;6180:2007;6271:15;1061:2431:0;;;;6271:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6468:26:1;;;;;;;-1:-1:-1;6468:26:1;;;6180:2007;1061:2431:0;;;;;;;6531:31:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;;6180:2007;1061:2431:0;;;;;;;6599:31:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;;6180:2007;1061:2431:0;;;;;;;6661:25:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;;6180:2007;1061:2431:0;;;;;;;6711:22:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;;6180:2007;1061:2431:0;;;;;;;6758:19:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;;6180:2007;1061:2431:0;;;;;;;6802:19:1;;1061:2431:0;;6271:17:1;1061:2431:0;;;;;;6180:2007:1;6271:15;1061:2431:0;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6866:19:1;;6180:2007;6271:15;;1061:2431:0;;;;;6271:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6918:32:1;;6271:17;6918:32;;1061:2431:0;;;6180:2007:1;6271:15;1061:2431:0;;;;;;;;-1:-1:-1;;;;;1061:2431:0;6918:32:1;;;;;;-1:-1:-1;1061:2431:0;6918:32:1;;;6180:2007;1061:2431:0;;;;;;;6983:32:1;;6271:17;6983:32;;1061:2431:0;;;;;;;;;;6180:2007:1;6271:15;1061:2431:0;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7105:25:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6271:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7105:25:1;;;;;;;-1:-1:-1;7105:25:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7148:27:1;;1061:2431:0;;6271:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7148:27:1;;;;;;-1:-1:-1;1061:2431:0;7148:27:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7217:23:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6271:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7217:23:1;;;;;;;-1:-1:-1;7217:23:1;;;6180:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7292:34:1;;-1:-1:-1;;;;;1061:2431:0;;;6271:17:1;7292:34;;1061:2431:0;6180:2007:1;6271:15;1061:2431:0;;;;;;;;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;;6180:2007;-1:-1:-1;1061:2431:0;;7350:42:1;;;;-1:-1:-1;;;7350:42:1;;;6180:2007;6271:15;7350:42;;-1:-1:-1;;;;;1061:2431:0;;;6271:17:1;7350:42;;;1061:2431:0;7350:42:1;;;;;1061:2431:0;;;;7350:42:1;;1061:2431:0;;7350:42:1;;;;;;;;;;;-1:-1:-1;7350:42:1;;;;6180:2007;1061:2431:0;;;;;;;;:::i;:::-;;;;;;;;;;;;7051:348:1;;1061:2431:0;;;;;7051:348:1;;1061:2431:0;;;7051:348:1;;1061:2431:0;;;7051:348:1;;1061:2431:0;;;;;;;;;7051:348:1;;1061:2431:0;;;7051:348:1;;1061:2431:0;;7051:348:1;;;1061:2431:0;;;;6254:34:1;1061:2431:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6254:34:1;1061:2431:0;;;;;;;;6254:34:1;1061:2431:0;;:::i;:::-;;-1:-1:-1;1061:2431:0;;;;;;7483:11:1;;-1:-1:-1;7511:3:1;1061:2431:0;;6254:34:1;1061:2431:0;;;;7496:13:1;;;;7536:24;;7511:3;7536:24;6180:2007;7536:24;;:::i;:::-;7524:36;1061:2431:0;;;7524:36:1;;:::i;:::-;;;1061:2431:0;;;7524:36:1;;:::i;7511:3::-;7483:11;;7496:13;;;;;;;;;;;7901:38;-1:-1:-1;;;;;7810:38:1;6891:59;1061:2431:0;6891:59:1;1061:2431:0;7810:38:1;:::i;:::-;1061:2431:0;;7901:38:1;:::i;:::-;1061:2431:0;;;8005:27:1;1061:2431:0;8005:27:1;;4218:18;1061:2431:0;8098:27:1;;4218:18;1061:2431:0;;;;;;;;:::i;:::-;;;;;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;6180:2007:1;7586:596;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;;7586:596:1;;1061:2431:0;6180:2007:1;:::o;1061:2431:0:-;;;;;;;;:::i;:::-;;;;;;;;7350:42:1;;;;1061:2431:0;7350:42:1;;1061:2431:0;7350:42:1;;;;;;;1061:2431:0;7350:42:1;;;:::i;:::-;1061:2431:0;7350:42:1;;;;1061:2431:0;;;;;7350:42:1;;;;;;;-1:-1:-1;7350:42:1;;7292:34;;;;1061:2431:0;7292:34:1;;1061:2431:0;7292:34:1;;;;;;1061:2431:0;7292:34:1;;;:::i;:::-;;;1061:2431:0;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7148:27;1061:2431:0;7148:27:1;;1061:2431:0;7148:27:1;;;;;;1061:2431:0;7148:27:1;;;:::i;:::-;;;1061:2431:0;;;;;;7148:27:1;;;;;;;-1:-1:-1;7148:27:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;;;;:::i;:::-;;;;;6983:32;;;;1061:2431:0;6983:32:1;;1061:2431:0;6983:32:1;;;;;;1061:2431:0;6983:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;6918;1061:2431:0;6918:32:1;;1061:2431:0;6918:32:1;;;;;;1061:2431:0;6918:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6918:32:1;;;;;;;-1:-1:-1;6918:32:1;;6866:19;;;;6180:2007;6866:19;;6180:2007;6866:19;;;;;;6180:2007;6866:19;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;6802;;;;1061:2431:0;6802:19:1;;1061:2431:0;6802:19:1;;;;;;1061:2431:0;6802:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;6758;;;;1061:2431:0;6758:19:1;;1061:2431:0;6758:19:1;;;;;;1061:2431:0;6758:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;6711:22;;;;1061:2431:0;6711:22:1;;1061:2431:0;6711:22:1;;;;;;1061:2431:0;6711:22:1;;;:::i;:::-;;;1061:2431:0;;;;;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;6661:25;;;;1061:2431:0;6661:25:1;;1061:2431:0;6661:25:1;;;;;;1061:2431:0;6661:25:1;;;:::i;:::-;;;1061:2431:0;;;;;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;6599:31;;;;1061:2431:0;6599:31:1;;1061:2431:0;6599:31:1;;;;;;1061:2431:0;6599:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;6531;;;;1061:2431:0;6531:31:1;;1061:2431:0;6531:31:1;;;;;;1061:2431:0;6531:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;6468:26;;;1061:2431:0;6468:26:1;;1061:2431:0;6468:26:1;;;;;;1061:2431:0;6468:26:1;;;:::i;:::-;;;1061:2431:0;;;;;6468:26:1;;;;;;-1:-1:-1;6468:26:1;;6415:21;;;;1061:2431:0;6415:21:1;;1061:2431:0;6415:21:1;;;;;;1061:2431:0;6415:21:1;;;:::i;:::-;;;1061:2431:0;;;;;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;6366:26;;;;1061:2431:0;6366:26:1;;1061:2431:0;6366:26:1;;;;;;1061:2431:0;6366:26:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;6314:17;;;;1061:2431:0;6314:17:1;;1061:2431:0;6314:17:1;;;;;;1061:2431:0;6314:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;6271;1061:2431:0;6271:17:1;;1061:2431:0;6271:17:1;;;;;;1061:2431:0;6271:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6271:17:1;;;;;;;-1:-1:-1;6271:17:1;;1061:2431:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;10271:782:1:-;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10407:25:1;;1061:2431:0;;;;10407:25:1;;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;;;;;10407:25:1;;1061:2431:0;;;;10407:25:1;;;;;;;-1:-1:-1;10407:25:1;;;10271:782;1061:2431:0;;10495:15:1;;;;1061:2431:0;;;;;;-1:-1:-1;;;;;10538:32:1;10407:25;10538:32;;;;1061:2431:0;;;;;;;;;;;;;;10590:33:1;;;;;;;;;-1:-1:-1;10590:33:1;;;10271:782;10660:35;10407:25;10660:35;;1061:2431:0;10660:35:1;;1061:2431:0;;10724:27:1;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;10767:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10767:29:1;;;10271:782;10828:19;;;;1061:2431:0;;;;;;;;;;;;;;;10813:35:1;;10407:25;10813:35;;1061:2431:0;10813:35:1;;;;;;;;;;-1:-1:-1;10813:35:1;;;10271:782;1061:2431:0;;;10909:19:1;1061:2431:0;10909:19:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;10946:31:1;;;;10407:25;10946:31;-1:-1:-1;10946:31:1;;;;;;;-1:-1:-1;10946:31:1;;;10271:782;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;11000:39:1;;1061:2431:0;;10407:25:1;11000:39;;1061:2431:0;;;;;;;11000:39:1;;1061:2431:0;11000:39:1;;;;;;;-1:-1:-1;11000:39:1;;;10271:782;1061:2431:0;;;;;;;;:::i;:::-;;10452:596:1;;1061:2431:0;10452:596:1;;1061:2431:0;10452:596:1;;;1061:2431:0;10538:32:1;10452:596;;1061:2431:0;;10452:596:1;;1061:2431:0;10724:27:1;10452:596;;1061:2431:0;;10452:596:1;;1061:2431:0;10452:596:1;;1061:2431:0;10452:596:1;;;1061:2431:0;10452:596:1;;;1061:2431:0;10271:782:1;:::o;11000:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;11000:39:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10946:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10813:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;10813:35:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10767:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10590:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;10407:25:1;10590:33;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10407:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10407:25:1;;;;;;;;;11057:925;;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11357:63:1;;-1:-1:-1;;;;;1061:2431:0;;;11357:63:1;;;1061:2431:0;;;;;;;;;;;;;;;11357:63:1;1061:2431:0;;;;11357:63:1;;;;;;;-1:-1:-1;11357:63:1;;;11057:925;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11439:57:1;;-1:-1:-1;;;;;1061:2431:0;;;11357:63:1;11439:57;;1061:2431:0;;;;;;;;;11357:63:1;;1061:2431:0;;;;;;11439:57:1;;;;;;;-1:-1:-1;11439:57:1;;;11057:925;-1:-1:-1;11357:63:1;11524:22;;1061:2431:0;;11566:14:1;;;1061:2431:0;11617:31:1;;;1061:2431:0;;11677:23:1;;1061:2431:0;11716:10:1;;;;11743:11;;;1061:2431:0;;11775:15:1;;1061:2431:0;11811:15:1;;;1061:2431:0;11844:12:1;;;;11879:17;;;1061:2431:0;;;;;-1:-1:-1;;;11921:47:1;;-1:-1:-1;;;;;1061:2431:0;;;11357:63:1;11921:47;;1061:2431:0;;11844:12:1;;1061:2431:0;;;;;;;;;;11716:10:1;;1061:2431:0;;;;;11921:47:1;;1061:2431:0;11921:47:1;11357:63;11921:47;;;;;;;-1:-1:-1;11921:47:1;;;11057:925;1061:2431:0;;;;;;;;:::i;:::-;;;11357:63:1;11256:721;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;11256:721:1;;1061:2431:0;11716:10:1;11256:721;;1061:2431:0;11617:31:1;11256:721;;1061:2431:0;;11256:721:1;;1061:2431:0;11743:11:1;11256:721;;1061:2431:0;;11256:721:1;;1061:2431:0;11811:15:1;11256:721;;1061:2431:0;11844:12:1;11256:721;;1061:2431:0;11879:17:1;11256:721;;1061:2431:0;11256:721:1;;;1061:2431:0;11256:721:1;;;1061:2431:0;11256:721:1;;;1061:2431:0;11057:925:1;:::o;11921:47::-;;;11357:63;11921:47;;11357:63;11921:47;;;;;;11357:63;11921:47;;;:::i;:::-;;;1061:2431:0;;;;;;11921:47:1;;;;;;;-1:-1:-1;11921:47:1;;11439:57;;11357:63;11439:57;;11357:63;11439:57;;;;;;11357:63;11439:57;;;:::i;:::-;;;1061:2431:0;;;;;;;;:::i;:::-;11439:57:1;;;;;;-1:-1:-1;11439:57:1;;11357:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;11357:63:1;;;;;;-1:-1:-1;11357:63:1;", + "object": "0x6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461106b575080635346cc1914610be3578063c2815c0b14610aa8578063cbe293fa14610a5c578063d4fc9fc6146108d55763ec7d7f7a1461006257600080fd5b3461065a5760e036600319011261065a576004356001600160a01b038116810361065a5761008e611122565b61009661125b565b916001600160401b03806064351161065a5736602360643501121561065a57606435600401351161065a573660246060606435600401350260643501011161065a576084356001600160a01b038116900361065a576004926100f661122f565b6020610100611245565b936000606060405161011181611138565b8281528185820152610121611656565b6040820152015260405196878092631f94a27560e31b825260018060a01b03165afa94851561066757600095610891575b506101626064356004013561170a565b9361017060405195866111fa565b60046064350135808652601f19906101879061170a565b0160005b81811061087a57505060005b6064356004013581106107cf575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa9081156106675760009161079d575b506101fb611656565b5061020582611bef565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106675760009161076b575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561066757600091610739575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa801561066757600060a052610706575b506000821283838103128116908484810313901516176106f057602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106675760009b6106bc575b5061036b6040518060c05261118a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a0608051015151936103cd8561170a565b946103db60405196876111fa565b8086526103ea601f199161170a565b0160005b8181106106a557505060005b60a06080510151805160ff83161015610453579061042d61044e926104266084359160ff851690611766565b5187612a5a565b61043a60ff831689611766565b5261044860ff821688611766565b50611bc5565b6103fa565b5050858585856080519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa90811561066757600091610673575b506080519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6105018261116e565b60c051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa9182156106675760009261062e575b506040519361059c85611138565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b81811061060d5750505082936106029151601f198583030160608601526113d2565b905160808301520390f35b9091956020610120826106236001948b51611271565b0197019291016105e0565b9091506020813d60201161065f575b8161064a602093836111fa565b8101031261065a5751908461058e565b600080fd5b3d915061063d565b6040513d6000823e3d90fd5b90506020813d60201161069d575b8161068e602093836111fa565b8101031261065a57518a6104b9565b3d9150610681565b6020906106b0612679565b82828a010152016103ee565b909a506020813d6020116106e8575b816106d8602093836111fa565b8101031261065a5751993861035b565b3d91506106cb565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610731575b8161071f602093836111fa565b8101031261065a575160a052386102cb565b3d9150610712565b90506020813d602011610763575b81610754602093836111fa565b8101031261065a575138610281565b3d9150610747565b90506020813d602011610795575b81610786602093836111fa565b8101031261065a575138610244565b3d9150610779565b90506020813d6020116107c7575b816107b8602093836111fa565b8101031261065a5751386101f2565b3d91506107ab565b6060606435828202013603602319011261065a576040516107ef81611153565b6064356060830201602401356001600160a01b038116900361065a5760643560608302016024810135825261085391859161082c9060440161121b565b60208201526108436064606086028135010161121b565b6040820152608435908a86611790565b61085d8288611766565b526108688187611766565b5060001981146106f057600101610197565b602090610885611721565b82828a0101520161018b565b9094506020813d6020116108cd575b816108ad602093836111fa565b8101031261065a57516001600160a01b038116810361065a579338610152565b3d91506108a0565b3461065a5760208060031936011261065a576108f76108f261110c565b611bef565b906040519080825282519261018090818385015261098d60018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610960610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a2f578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a4c838f8690600196030187528d516115c1565b9b019301930191949392906109e3565b3461065a57604036600319011261065a57610a7561110c565b6024359060ff8216820361065a57610aa491610a90916126f7565b6040519182916020835260208301906115c1565b0390f35b3461065a5760031960603682011261065a57610ac261110c565b602435906001600160401b039283831161065a576101608091843603011261065a5760405190810181811085821117610bcd57604052610b048360040161121b565b81526024830135602082015260448301356040820152606483013584811161065a57610b36906004369186010161157a565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b6560e4840161121b565b60e082015261010483013561010082015261012483013593841161065a57610144610bb993610b9d610aa4966004369184010161157a565b6101208401520135610140820152610bb361125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461065a57606036600319011261065a57610bfc61110c565b610c04611122565b90610c0d61125b565b610c15611656565b50610c1f82611bef565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561066757600093611037575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561066757600094611003575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561066757600091610fd1575b506000821283838103128116908484810313901516176106f057879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106675760009b610f9d575b5060206040519e8f90610d828261118a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610dc78461170a565b93610dd560405195866111fa565b808552610de4601f199161170a565b0160005b818110610f8657505060005b60a0860151805160ff83161015610e3b5790610e1b88610426610e369460ff851690611766565b610e2860ff831688611766565b5261044860ff821687611766565b610df4565b610e938387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561066757600092610f50575b610aa4995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ef68261116e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113d2565b91506020893d602011610f7e575b81610f6b602093836111fa565b8101031261065a57610aa4985191610eaf565b3d9150610f5e565b602090610f91612679565b82828901015201610de8565b909a506020813d602011610fc9575b81610fb9602093836111fa565b8101031261065a57519938610d70565b3d9150610fac565b90506020813d602011610ffb575b81610fec602093836111fa565b8101031261065a575188610ce3565b3d9150610fdf565b9093506020813d60201161102f575b8161101f602093836111fa565b8101031261065a57519286610c9d565b3d9150611012565b9092506020813d602011611063575b81611053602093836111fa565b8101031261065a57519185610c5f565b3d9150611046565b3461065a5760e036600319011261065a5761108461110c565b6001600160a01b0390602435828116810361065a57606036604319011261065a576110ae84611153565b604435838116810361065a578452606435838116810361065a576020850152608435928316830361065a57836110fd9360406101209601526110ee61122f565b916110f7611245565b93611790565b61110a6040518092611271565bf35b600435906001600160a01b038216820361065a57565b602435906001600160a01b038216820361065a57565b608081019081106001600160401b03821117610bcd57604052565b606081019081106001600160401b03821117610bcd57604052565b6101c081019081106001600160401b03821117610bcd57604052565b61016081019081106001600160401b03821117610bcd57604052565b61012081019081106001600160401b03821117610bcd57604052565b61018081019081106001600160401b03821117610bcd57604052565b61010081019081106001600160401b03821117610bcd57604052565b90601f801991011681019081106001600160401b03821117610bcd57604052565b35906001600160a01b038216820361065a57565b60a435906001600160a01b038216820361065a57565b60c435906001600160a01b038216820361065a57565b604435906001600160a01b038216820361065a57565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161144461016093846102808801526103208701906112f6565b9060e0830151166102a0860152610100808301516102c087015261147c61012092838501516101bf19898303016102e08a01526112f6565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115305750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b848061154f8f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bcd57601f01601f191660200190565b81601f8201121561065a578035906115918261155f565b9261159f60405194856111fa565b8284526020838301011161065a57816000926020809301838601378301015290565b9061164860018060a01b0380845116835260208401516020840152604084015160408401526115ff60608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b604051906116638261116e565b6040516101a0836116738361118a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bcd5760051b60200190565b6040519061172e826111a6565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b805182101561177a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361179d611721565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561066757600095611a53575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561066757600092611a1f575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610667576000946119eb575b506040516370a0823160e01b815287810186905294602086602481855afa958615610667576000966119b7575b50604051906370a0823160e01b825288820152602081602481855afa968715610667578a9160009861197f575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561066757600098611948575b506040519861191a8a6111a6565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611977575b81611963602093836111fa565b81010312611974575051963861190c565b80fd5b3d9150611956565b9150966020823d6020116119af575b8161199b602093836111fa565b8101031261197457505195899060246118d0565b3d915061198e565b90956020823d6020116119e3575b816119d2602093836111fa565b8101031261197457505194386118a3565b3d91506119c5565b90936020823d602011611a17575b81611a06602093836111fa565b810103126119745750519238611876565b3d91506119f9565b90916020823d602011611a4b575b81611a3a602093836111fa565b81010312611974575051903861183e565b3d9150611a2d565b6020959195813d602011611ab8575b81611a6f602093836111fa565b81010312611ab4576040519160208301908382106001600160401b03831117611aa157506040525181529360206117f5565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a62565b519060ff8216820361065a57565b51906001600160a01b038216820361065a57565b51906001600160401b038216820361065a57565b51906cffffffffffffffffffffffffff8216820361065a57565b60208183031261065a578051906001600160401b03821161065a570181601f8201121561065a578051611b428161155f565b92611b5060405194856111fa565b8184526020828401011161065a57611b6e91602080850191016112d3565b90565b60405190611b7e8261118a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106f05760010190565b6301e133809080600019048211811515166106f0570290565b60e0526000610160604051611c03816111c2565b604051611c0f816111de565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa80156106675760006101405261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa91821561066757600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa918215610667576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa92831561066757600093612591575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa9081156106675760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa9485156106675760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa918215610667576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa948515610667576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa9889156106675760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa9384156106675760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561066757600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa9485156106675760009561235b575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa80156106675760006101205261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156106675760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610667576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561066757600061016052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106675760009261226d575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561066757600095612239575b506040516101808181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa806101a05215610667576000906101a051612201575b61207760405180610100526111de565b60018060a01b0316610100515260206101005101526101605160406101005101526060610100510152608061010051015260018060a01b031660a061010051015260c061010051015260e06101005101526120d760ff610140511661170a565b976120e5604051998a6111fa565b60ff61014051168952601f1961210060ff610140511661170a565b0160005b8181106121e957505060005b60ff610140511660ff82161015612151578061213161214c9260e0516126f7565b61213e60ff83168d611766565b5261044860ff82168c611766565b612110565b5091939597909294969861217b6001600160401b03612174816101205116611bd6565b9216611bd6565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111c2565b610100518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b71565b9201015201612104565b905060203d602011612232575b61221b81610180516111fa565b60206101805180928101031261065a575190612067565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261065a57519338612018565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611b10565b9038611fd8565b6020813d6020116122be575b816122ab602093836111fa565b8101031261065a57516101605238611fa8565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f77565b909b506020813d602011612317575b816122ff602093836111fa565b8101031261065a5761231090611ae2565b9a38611f47565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b8101031261065a5761234990611ae2565b6101205238611f11565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b8101031261065a576040519061238f826111de565b61239881611ae2565b82526123a660208201611ae2565b60208301526123b760408201611ae2565b60408301526123c860608201611ae2565b60608301526123d960808201611af6565b60808301526123ea60a08201611af6565b60a083015260c081015164ffffffffff8116810361065a5760c08301526124139060e001611ac0565b60e08201529338611ed3565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261065a57519138611ea1565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261065a57519238611e70565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261065a57519738611e3f565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261065a57519338611e0e565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261065a57519038611ddd565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261065a57519338611dac565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b8101031261065a575138611d7b565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261065a57519138611d46565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b8101031261065a576125f290611ace565b9038611d15565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b8101031261065a5761262e90611ace565b9038611ce4565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b8101031261065a5761266790611ac0565b6101405238611cb3565b3d9150612649565b604051906126868261116e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361065a57565b90612700611b71565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161118a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119745750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261197457508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611974575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119745750612a4760e08651926129d2846111de565b6129db81611ac0565b84526129e960208201611ace565b60208501526129f9888201611ace565b88850152612a0960608201611ae2565b6060850152612a1a60808201611ae2565b6080850152612a2b60a08201611ae2565b60a0850152612a3c60c08201611ae2565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561066757600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561066757600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106675760009d612bd3575b50604051809e612b7f8261116e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119745750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119745750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611974575051906020612aab565b3d9150612c4f56fea26469706673582212208459a3957dd5de7ced8901e02eca616c894cc774f6c517f2383cf460cc41b09d64736f6c63430008100033", + "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1931:25;;1061:2431;;;;;;1931:25;;;;;;;1061:2431;1931:25;;;1061:2431;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::i;:::-;;;;;;;;;2078:10;;1061:2431;2090:15;1061:2431;;;;;2090:15;;;;-1:-1:-1;;1061:2431:0;;-1:-1:-1;;;2262:33:0;;-1:-1:-1;;;;;1061:2431:0;;;;;2262:33;;1061:2431;;;;;;;;;;;;;;2262:33;1061:2431;-1:-1:-1;;;;;1061:2431:0;;2262:33;;;;;;;1061:2431;2262:33;;;2073:129;1061:2431;;;:::i;:::-;;8385:12:1;;;:::i;:::-;;;1061:2431:0;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8434:24:1;;1061:2431:0;;;;;;;;;;;8434:24:1;;;;;;;1061:2431:0;8434:24:1;;;2073:129:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8494:30:1;;1061:2431:0;;;;;;;;;;;8494:30:1;;;;;;;1061:2431:0;8494:30:1;;;2073:129:0;-1:-1:-1;8385:12:1;8621:18;;1061:2431:0;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8668:70:1;;1061:2431:0;;;;;;;;;;;;;;;;;8668:70:1;;;;;;1061:2431:0;;8668:70:1;;;2073:129:0;1061:2431;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;8385:12;8828:18;;:25;1061:2431:0;8828:25:1;;;8871:27;1061:2431:0;8871:27:1;;1061:2431:0;;8917:28:1;;1061:2431:0;8959:23:1;8385:12;8959:23;;;1061:2431:0;;;;;;;9001:28:1;;1061:2431:0;;9044:24:1;;;;1061:2431:0;9092:33:1;1061:2431:0;9092:33:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;9148:54:1;;1061:2431:0;;;;;;;;;9148:54:1;;1061:2431:0;9148:54:1;;;;;;;1061:2431:0;9148:54:1;;;2073:129:0;1061:2431;;;;;9044:24:1;1061:2431:0;;:::i;:::-;9044:24:1;1061:2431:0;;;;;9044:24:1;8576:633;;1061:2431:0;;;9044:24:1;8576:633;;1061:2431:0;;9044:24:1;8576:633;;1061:2431:0;8385:12:1;9044:24;8576:633;;1061:2431:0;;9044:24:1;8576:633;;1061:2431:0;9044:24:1;8576:633;;;1061:2431:0;;9044:24:1;8576:633;;1061:2431:0;8576:633:1;9044:24;8576:633;;1061:2431:0;8576:633:1;9044:24;8576:633;;1061:2431:0;8576:633:1;9044:24;8576:633;;1061:2431:0;;8385:12:1;9311:25;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1061:2431:0;9411:3:1;1061:2431:0;8385:12:1;9311:25;;9377;1061:2431:0;;;;;9373:36:1;;;;1061:2431:0;9436:71:1;9411:3;1061:2431:0;9469:28:1;1061:2431:0;;;;;;9469:28:1;;:::i;:::-;;9436:71;;:::i;:::-;9424:83;1061:2431:0;;;9424:83:1;;:::i;:::-;;;1061:2431:0;;;9424:83:1;;:::i;:::-;;9411:3;:::i;:::-;9360:11;;9373:36;;;;;;;8385:12;9619:26;;1061:2431:0;9619:26:1;;1061:2431:0;9680:32:1;1061:2431:0;9680:32:1;;1061:2431:0;9747:32:1;1061:2431:0;;8385:12:1;1061:2431:0;9747:32:1;;1061:2431:0;9800:18:1;;1061:2431:0;;;;;;;;;;;9845:32:1;;1061:2431:0;;;;;;;;;9845:32:1;;1061:2431:0;;;;;;;;;;;;9845:32:1;;;;;;;1061:2431:0;9845:32:1;;;9355:159;9930:16;8385:12;9930:16;;9044:24;9930:16;;1061:2431:0;;;;;;;;;;9982:15:1;10020:20;1061:2431:0;10020:20:1;;1061:2431:0;10072:29:1;8576:633;10072:29;;1061:2431:0;10124:20:1;8576:633;10124:20;;1061:2431:0;10176:29:1;8576:633;10176:29;;1061:2431:0;10235:27:1;1061:2431:0;10235:27:1;1061:2431:0;;;;;;;;;:::i;:::-;9044:24:1;1061:2431:0;;;;9533:738:1;;1061:2431:0;;9533:738:1;1061:2431:0;;9533:738:1;;1061:2431:0;8385:12:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9044:24:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9533:738:1;;;1061:2431:0;9533:738:1;;;1061:2431:0;;;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;2411:38;1061:2431;2411:38;;;;;;;1061:2431;2411:38;;;9355:159:1;1061:2431:0;;;;;;;:::i;:::-;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;;;;;;;;;;;;;;;;;8385:12:1;1061:2431:0;;;;;;;;;;9044:24:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8385:12:1;1061:2431:0;;;;;;;;;;;8576:633:1;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;2411:38;;;;1061:2431;2411:38;;1061:2431;2411:38;;;;;;1061:2431;2411:38;;;:::i;:::-;;;1061:2431;;;;;2411:38;;;;1061:2431;;;;2411:38;;;-1:-1:-1;2411:38:0;;;1061:2431;;;;;;;;;9845:32:1;;;1061:2431:0;9845:32:1;;1061:2431:0;9845:32:1;;;;;;1061:2431:0;9845:32:1;;;:::i;:::-;;;1061:2431:0;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;1061:2431:0;;;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;1061:2431:0;9148:54:1;;1061:2431:0;9148:54:1;;;;;;1061:2431:0;9148:54:1;;;:::i;:::-;;;1061:2431:0;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;1061:2431:0;;;;;;;;;;;;8668:70:1;1061:2431:0;8668:70:1;;1061:2431:0;8668:70:1;;;;;;1061:2431:0;8668:70:1;;;:::i;:::-;;;1061:2431:0;;;;;;8668:70:1;;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;1061:2431:0;8494:30:1;;1061:2431:0;8494:30:1;;;;;;1061:2431:0;8494:30:1;;;:::i;:::-;;;1061:2431:0;;;;;8494:30:1;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;1061:2431:0;8434:24:1;;1061:2431:0;8434:24:1;;;;;;1061:2431:0;8434:24:1;;;:::i;:::-;;;1061:2431:0;;;;;8434:24:1;;;;;;-1:-1:-1;8434:24:1;;2262:33:0;;;1061:2431;2262:33;;1061:2431;2262:33;;;;;;1061:2431;2262:33;;;:::i;:::-;;;1061:2431;;;;;2262:33;;;;;;-1:-1:-1;2262:33:0;;2107:3;1061:2431;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;2132:63;;1061:2431;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2132:63;;;;:::i;:::-;2120:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2431:0;;;;;;2078:10;;1061:2431;;;;;:::i;:::-;;;;;;;;;;1931:25;;;;1061:2431;1931:25;;1061:2431;1931:25;;;;;;1061:2431;1931:25;;;:::i;:::-;;;1061:2431;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;1931:25;;;;;;;-1:-1:-1;1931:25:0;;1061:2431;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8385:12:1;;;:::i;:::-;1061:2431:0;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;8434:24:1;;1061:2431:0;;;;;;;8434:24:1;;1061:2431:0;;;;;;;;8434:24:1;;;;;;;1061:2431:0;8434:24:1;;;1061:2431:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;8494:30:1;;1061:2431:0;;;;8434:24:1;;1061:2431:0;;;;;;;;8494:30:1;;;;;;;1061:2431:0;8494:30:1;;;1061:2431:0;-1:-1:-1;8621:18:1;;1061:2431:0;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;8668:70:1;;1061:2431:0;;;;;;;;;;;;;8434:24:1;1061:2431:0;;;;8668:70:1;;;;;;;1061:2431:0;8668:70:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;;;;:25;1061:2431:0;8828:25:1;;;8871:27;1061:2431:0;8871:27:1;;1061:2431:0;;8917:28:1;;1061:2431:0;8959:23:1;;;;;1061:2431:0;;;;;;;9001:28:1;;1061:2431:0;;9044:24:1;;;;1061:2431:0;9092:33:1;8434:24;9092:33;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;9148:54:1;;1061:2431:0;;;;;;;9148:54:1;;1061:2431:0;9148:54:1;;;;;;;1061:2431:0;9148:54:1;;;1061:2431:0;;8434:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;8576:633:1;1061:2431:0;;;8576:633:1;;1061:2431:0;;8576:633:1;;1061:2431:0;8959:23:1;8576:633;;1061:2431:0;;8576:633:1;;1061:2431:0;9044:24:1;8576:633;;1061:2431:0;;8576:633:1;;1061:2431:0;8576:633:1;;;1061:2431:0;8576:633:1;;;1061:2431:0;8576:633:1;;;1061:2431:0;;9311:25:1;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1061:2431:0;9411:3:1;1061:2431:0;9311:25:1;;9377;1061:2431:0;;;;;9373:36:1;;;;1061:2431:0;9436:71:1;1061:2431:0;9469:28:1;9411:3;1061:2431:0;;;;9469:28:1;;:::i;9436:71::-;9424:83;1061:2431:0;;;9424:83:1;;:::i;:::-;;;1061:2431:0;;;9424:83:1;;:::i;9411:3::-;9360:11;;9373:36;9845:32;9373:36;;;;;;8434:24;9619:26;;1061:2431:0;9680:32:1;1061:2431:0;9680:32:1;;1061:2431:0;9747:32:1;8434:24;1061:2431:0;9747:32:1;;1061:2431:0;9800:18:1;8959:23;9800:18;;1061:2431:0;;;;;;;;;;;;9845:32:1;;;1061:2431:0;9845:32:1;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;9845:32:1;;;-1:-1:-1;;;;;1061:2431:0;9845:32:1;;;;;;;1061:2431:0;9845:32:1;;;9355:159;1061:2431:0;9930:16:1;;9044:24;9930:16;;1061:2431:0;;;;;;;;9982:15:1;10020:20;1061:2431:0;10020:20:1;;1061:2431:0;10072:29:1;8576:633;10072:29;;1061:2431:0;10124:20:1;8576:633;10124:20;;1061:2431:0;10176:29:1;1061:2431:0;8576:633:1;10176:29;;1061:2431:0;10235:27:1;;1061:2431:0;;8434:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;9533:738:1;1061:2431:0;;9533:738:1;;1061:2431:0;;9533:738:1;;1061:2431:0;8959:23:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9044:24:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9533:738:1;;;1061:2431:0;9533:738:1;;;1061:2431:0;;;;;;8434:24:1;1061:2431:0;;8434:24:1;1061:2431:0;;;;:::i;9845:32:1:-;;;8434:24;9845:32;;8434:24;9845:32;;;;;;8434:24;9845:32;;;:::i;:::-;;;1061:2431:0;;;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;1061:2431:0;8434:24:1;1061:2431:0;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;8434:24;9148:54;;8434:24;9148:54;;;;;;8434:24;9148:54;;;:::i;:::-;;;1061:2431:0;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;8668:70;;;8434:24;8668:70;;8434:24;8668:70;;;;;;8434:24;8668:70;;;:::i;:::-;;;1061:2431:0;;;;;8668:70:1;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;;8434:24;8494:30;;8434:24;8494:30;;;;;;8434:24;8494:30;;;:::i;:::-;;;1061:2431:0;;;;;8494:30:1;;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;8434:24:1;;;;;;;-1:-1:-1;8434:24:1;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2467:1023;;;;;;1061:2431;;:::i;:::-;-1:-1:-1;1061:2431:0;;2768:29;;;;1061:2431;2833:31;;;;1061:2431;;;-1:-1:-1;;;2930:38:0;;-1:-1:-1;;;;;1061:2431:0;;;2930:38;;;;1061:2431;;;;;2930:38;;1061:2431;;;;;;;;;;;;2768:29;1061:2431;;;;;;;2930:38;;;;;;;-1:-1:-1;2930:38:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;;-1:-1:-1;;;3163:34:0;;-1:-1:-1;;;;;1061:2431:0;;;3163:34;;;1061:2431;;;;;2768:29;1061:2431;;;;;;;;;;2768:29;;1061:2431;;;;;3163:34;;;;;;;;;;-1:-1:-1;3163:34:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3216:25:0;;-1:-1:-1;;;;;1061:2431:0;;;3216:25;;;1061:2431;;;;2768:29;1061:2431;;;3216:25;;;;;;;;-1:-1:-1;3216:25:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3270:34:0;;;;;1061:2431;;;;2768:29;1061:2431;;;3270:34;;;;;;;;-1:-1:-1;3270:34:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;3335:34;;;;;1061:2431;2768:29;3335:34;1061:2431;3335:34;;;;;;;;;;;-1:-1:-1;3335:34:0;;;2467:1023;-1:-1:-1;1061:2431:0;2833:31;1061:2431;-1:-1:-1;;;3434:42:0;;;;;1061:2431;;;;;;2768:29;;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;3434:42;;;;;;;-1:-1:-1;3434:42:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;:::i;:::-;;;2768:29;2988:497;;1061:2431;2833:31;2988:497;;1061:2431;2988:497;;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;2467:1023;:::o;3434:42::-;;;2768:29;3434:42;;2768:29;3434:42;;;;;;2768:29;3434:42;;;:::i;:::-;;;1061:2431;;;;;;3434:42;;;;1061:2431;;;3434:42;;;-1:-1:-1;3434:42:0;;3335:34;;;;2768:29;3335:34;;2768:29;3335:34;;;;;;2768:29;3335:34;;;:::i;:::-;;;1061:2431;;;;-1:-1:-1;1061:2431:0;;;;;3335:34;;;;;-1:-1:-1;3335:34:0;;3270;;;2768:29;3270:34;;2768:29;3270:34;;;;;;2768:29;3270:34;;;:::i;:::-;;;1061:2431;;;;;;3270:34;;;;;;;-1:-1:-1;3270:34:0;;3216:25;;;2768:29;3216:25;;2768:29;3216:25;;;;;;2768:29;3216:25;;;:::i;:::-;;;1061:2431;;;;;;3216:25;;;;;;;-1:-1:-1;3216:25:0;;3163:34;;;2768:29;3163:34;;2768:29;3163:34;;;;;;2768:29;3163:34;;;:::i;:::-;;;1061:2431;;;;;;3163:34;;;;;;;-1:-1:-1;3163:34:0;;2930:38;2768:29;2930:38;;;;;2768:29;2930:38;;;;;;2768:29;2930:38;;;:::i;:::-;;;1061:2431;;;;2833:31;1061:2431;;2768:29;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;-1:-1:-1;2833:31:0;1061:2431;;;;;2768:29;2930:38;;1061:2431;-1:-1:-1;;;1061:2431:0;;;;;;;;;;;;2930:38;;;-1:-1:-1;2930:38:0;;1061:2431;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2431:0;;;;4218:18:1;;;;;;;;;;;:::o;6179:2007::-;;;-1:-1:-1;1061:2431:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;6270:17:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6270:17:1;;;;;;-1:-1:-1;1061:2431:0;6270:17:1;;;6179:2007;1061:2431:0;;;;;;;6313:17:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;;6179:2007;1061:2431:0;;;;;;;6365:26:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;;6179:2007;1061:2431:0;;;;;;;6414:21:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6467:26:1;;6179:2007;6270:15;1061:2431:0;;;;6270:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6467:26:1;;;;;;;-1:-1:-1;6467:26:1;;;6179:2007;1061:2431:0;;;;;;;6530:31:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;;6179:2007;1061:2431:0;;;;;;;6598:31:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;;6179:2007;1061:2431:0;;;;;;;6660:25:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;;6179:2007;1061:2431:0;;;;;;;6710:22:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;;6179:2007;1061:2431:0;;;;;;;6757:19:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;;6179:2007;1061:2431:0;;;;;;;6801:19:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;;6179:2007;1061:2431:0;;;;;;;6865:19:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6917:32:1;;6270:17;6917:32;;1061:2431:0;;;6179:2007:1;6270:15;1061:2431:0;;;;;;;;-1:-1:-1;;;;;1061:2431:0;6917:32:1;;;;;;-1:-1:-1;1061:2431:0;6917:32:1;;;6179:2007;1061:2431:0;;;;;;;6982:32:1;;6270:17;6982:32;;1061:2431:0;;;;;;;;;;6179:2007:1;6270:15;1061:2431:0;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7104:25:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6270:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7104:25:1;;;;;;;-1:-1:-1;7104:25:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7147:27:1;;1061:2431:0;;6270:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7147:27:1;;;;;;-1:-1:-1;1061:2431:0;7147:27:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7216:23:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6270:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7216:23:1;;;;;;;-1:-1:-1;7216:23:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7291:34:1;;-1:-1:-1;;;;;1061:2431:0;;;6270:17:1;7291:34;;1061:2431:0;;6270:15:1;1061:2431:0;;;;;;;;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;;6179:2007;-1:-1:-1;1061:2431:0;;7349:42:1;;;;-1:-1:-1;;;7349:42:1;;;1061:2431:0;6270:15:1;7349:42;;-1:-1:-1;;;;;1061:2431:0;;;6270:17:1;7349:42;;;1061:2431:0;7349:42:1;;1061:2431:0;;;;7349:42:1;;1061:2431:0;;7349:42:1;;;;;;;;-1:-1:-1;7349:42:1;;;;;6179:2007;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;7050:348:1;;1061:2431:0;;;;;7050:348:1;;1061:2431:0;;;7050:348:1;;1061:2431:0;;;7050:348:1;;1061:2431:0;;;;;;;;;7050:348:1;;1061:2431:0;;;7050:348:1;;1061:2431:0;6179:2007:1;1061:2431:0;7050:348:1;;1061:2431:0;;;;6253:34:1;1061:2431:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6253:34:1;1061:2431:0;;;;;;;;6253:34:1;1061:2431:0;;:::i;:::-;;-1:-1:-1;1061:2431:0;;;;;;7482:11:1;;-1:-1:-1;7510:3:1;1061:2431:0;;6253:34:1;1061:2431:0;;;;7495:13:1;;;;7535:24;;7510:3;7535:24;6179:2007;7535:24;;:::i;:::-;7523:36;1061:2431:0;;;7523:36:1;;:::i;:::-;;;1061:2431:0;;;7523:36:1;;:::i;7510:3::-;7482:11;;7495:13;;;;;;;;;;;7900:38;-1:-1:-1;;;;;7809:38:1;6890:59;1061:2431:0;6890:59:1;1061:2431:0;7809:38:1;:::i;:::-;1061:2431:0;;7900:38:1;:::i;:::-;8004:27;1061:2431:0;;8004:27:1;1061:2431:0;8004:27:1;;4218:18;1061:2431:0;8097:27:1;;4218:18;1061:2431:0;;;;;;;;:::i;:::-;;;;;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;6179:2007:1;7585:596;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;6179:2007:1;:::o;1061:2431:0:-;;;;;;;;:::i;:::-;;;;;;;;7349:42:1;;;1061:2431:0;7349:42:1;1061:2431:0;7349:42:1;;;;;;;;;:::i;:::-;1061:2431:0;7349:42:1;1061:2431:0;7349:42:1;;;;1061:2431:0;;;;;7349:42:1;;;;;;;;7291:34;;;;1061:2431:0;7291:34:1;;1061:2431:0;7291:34:1;;;;;;1061:2431:0;7291:34:1;;;:::i;:::-;;;1061:2431:0;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;7216:23;;;;;;;-1:-1:-1;7216:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7147:27;1061:2431:0;7147:27:1;;1061:2431:0;7147:27:1;;;;;;1061:2431:0;7147:27:1;;;:::i;:::-;;;1061:2431:0;;;;;;7147:27:1;;;;;;;-1:-1:-1;7147:27:1;;7104:25;;;;;;;-1:-1:-1;7104:25:1;;;;;;:::i;:::-;;;;;6982:32;;;;1061:2431:0;6982:32:1;;1061:2431:0;6982:32:1;;;;;;1061:2431:0;6982:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;6917;1061:2431:0;6917:32:1;;1061:2431:0;6917:32:1;;;;;;1061:2431:0;6917:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6917:32:1;;;;;;;-1:-1:-1;6917:32:1;;6865:19;;;;1061:2431:0;6865:19:1;;1061:2431:0;6865:19:1;;;;;;1061:2431:0;6865:19:1;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2431:0;;:::i;:::-;6179:2007:1;1061:2431:0;;;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;6801;;;;1061:2431:0;6801:19:1;;1061:2431:0;6801:19:1;;;;;;1061:2431:0;6801:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;6757;;;;1061:2431:0;6757:19:1;;1061:2431:0;6757:19:1;;;;;;1061:2431:0;6757:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;6710:22;;;;1061:2431:0;6710:22:1;;1061:2431:0;6710:22:1;;;;;;1061:2431:0;6710:22:1;;;:::i;:::-;;;1061:2431:0;;;;;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;6660:25;;;;1061:2431:0;6660:25:1;;1061:2431:0;6660:25:1;;;;;;1061:2431:0;6660:25:1;;;:::i;:::-;;;1061:2431:0;;;;;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;6598:31;;;;1061:2431:0;6598:31:1;;1061:2431:0;6598:31:1;;;;;;1061:2431:0;6598:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;6530;;;;1061:2431:0;6530:31:1;;1061:2431:0;6530:31:1;;;;;;1061:2431:0;6530:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;6467:26;;;1061:2431:0;6467:26:1;;1061:2431:0;6467:26:1;;;;;;1061:2431:0;6467:26:1;;;:::i;:::-;;;1061:2431:0;;;;;6467:26:1;;;;;;-1:-1:-1;6467:26:1;;6414:21;;;;1061:2431:0;6414:21:1;;1061:2431:0;6414:21:1;;;;;;1061:2431:0;6414:21:1;;;:::i;:::-;;;1061:2431:0;;;;;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;6365:26;;;;1061:2431:0;6365:26:1;;1061:2431:0;6365:26:1;;;;;;1061:2431:0;6365:26:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;6313:17;;;;1061:2431:0;6313:17:1;;1061:2431:0;6313:17:1;;;;;;1061:2431:0;6313:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;6270;1061:2431:0;6270:17:1;;1061:2431:0;6270:17:1;;;;;;1061:2431:0;6270:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6270:17:1;;;;;;;-1:-1:-1;6270:17:1;;1061:2431:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;10280:782:1:-;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10416:25:1;;1061:2431:0;;;;10416:25:1;;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;;;;;10416:25:1;;1061:2431:0;;;;10416:25:1;;;;;;;-1:-1:-1;10416:25:1;;;10280:782;1061:2431:0;;10504:15:1;;;;1061:2431:0;;;;;;-1:-1:-1;;;;;10547:32:1;10416:25;10547:32;;;;1061:2431:0;;;;;;;;;;;;;;10599:33:1;;;;;;;;;-1:-1:-1;10599:33:1;;;10280:782;10669:35;10416:25;10669:35;;1061:2431:0;10669:35:1;;1061:2431:0;;10733:27:1;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;10776:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10776:29:1;;;10280:782;10837:19;;;;1061:2431:0;;;;;;;;;;;;;;;10822:35:1;;10416:25;10822:35;;1061:2431:0;10822:35:1;;;;;;;;;;-1:-1:-1;10822:35:1;;;10280:782;1061:2431:0;;;10918:19:1;1061:2431:0;10918:19:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;10955:31:1;;;;10416:25;10955:31;-1:-1:-1;10955:31:1;;;;;;;-1:-1:-1;10955:31:1;;;10280:782;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;11009:39:1;;1061:2431:0;;10416:25:1;11009:39;;1061:2431:0;;;;;;;11009:39:1;;1061:2431:0;11009:39:1;;;;;;;-1:-1:-1;11009:39:1;;;10280:782;1061:2431:0;;;;;;;;:::i;:::-;;10461:596:1;;1061:2431:0;10461:596:1;;1061:2431:0;10461:596:1;;;1061:2431:0;10547:32:1;10461:596;;1061:2431:0;;10461:596:1;;1061:2431:0;10733:27:1;10461:596;;1061:2431:0;;10461:596:1;;1061:2431:0;10461:596:1;;1061:2431:0;10461:596:1;;;1061:2431:0;10461:596:1;;;1061:2431:0;10280:782:1;:::o;11009:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;11009:39:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10955:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10822:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;10822:35:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10776:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10599:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;10416:25:1;10599:33;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10416:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10416:25:1;;;;;;;;;11066:925;;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11366:63:1;;-1:-1:-1;;;;;1061:2431:0;;;11366:63:1;;;1061:2431:0;;;;;;;;;;;;;;;11366:63:1;1061:2431:0;;;;11366:63:1;;;;;;;-1:-1:-1;11366:63:1;;;11066:925;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11448:57:1;;-1:-1:-1;;;;;1061:2431:0;;;11366:63:1;11448:57;;1061:2431:0;;;;;;;;;11366:63:1;;1061:2431:0;;;;;;11448:57:1;;;;;;;-1:-1:-1;11448:57:1;;;11066:925;-1:-1:-1;11366:63:1;11533:22;;1061:2431:0;;11575:14:1;;;1061:2431:0;11626:31:1;;;1061:2431:0;;11686:23:1;;1061:2431:0;11725:10:1;;;;11752:11;;;1061:2431:0;;11784:15:1;;1061:2431:0;11820:15:1;;;1061:2431:0;11853:12:1;;;;11888:17;;;1061:2431:0;;;;;-1:-1:-1;;;11930:47:1;;-1:-1:-1;;;;;1061:2431:0;;;11366:63:1;11930:47;;1061:2431:0;;11853:12:1;;1061:2431:0;;;;;;;;;;11725:10:1;;1061:2431:0;;;;;11930:47:1;;1061:2431:0;11930:47:1;11366:63;11930:47;;;;;;;-1:-1:-1;11930:47:1;;;11066:925;1061:2431:0;;;;;;;;:::i;:::-;;;11366:63:1;11265:721;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;11265:721:1;;1061:2431:0;11725:10:1;11265:721;;1061:2431:0;11626:31:1;11265:721;;1061:2431:0;;11265:721:1;;1061:2431:0;11752:11:1;11265:721;;1061:2431:0;;11265:721:1;;1061:2431:0;11820:15:1;11265:721;;1061:2431:0;11853:12:1;11265:721;;1061:2431:0;11888:17:1;11265:721;;1061:2431:0;11265:721:1;;;1061:2431:0;11265:721:1;;;1061:2431:0;11265:721:1;;;1061:2431:0;11066:925:1;:::o;11930:47::-;;;11366:63;11930:47;;11366:63;11930:47;;;;;;11366:63;11930:47;;;:::i;:::-;;;1061:2431:0;;;;;;11930:47:1;;;;;;;-1:-1:-1;11930:47:1;;11448:57;;11366:63;11448:57;;11366:63;11448:57;;;;;;11366:63;11448:57;;;:::i;:::-;;;1061:2431:0;;;;;;;;:::i;:::-;11448:57:1;;;;;;-1:-1:-1;11448:57:1;;11366:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;11366:63:1;;;;;;-1:-1:-1;11366:63:1;", "linkReferences": {} }, "methodIdentifiers": { @@ -1107,7 +1107,7 @@ "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b\",\"dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc\",\"dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1599,9 +1599,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -2016,9 +2016,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -2240,10 +2240,10 @@ "license": "UNLICENSED" }, "Sleuth/CometQuery.sol": { - "keccak256": "0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980", + "keccak256": "0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c", "urls": [ - "bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b", - "dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ" + "bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc", + "dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36" ], "license": "UNLICENSED" } @@ -2267,7 +2267,7 @@ 598 ], "CometQuery": [ - 1272 + 1278 ], "DebtToken": [ 27 @@ -2304,7 +2304,7 @@ "file": "./CometQuery.sol", "nameLocation": "-1:-1:-1", "scope": 288, - "sourceUnit": 1273, + "sourceUnit": 1279, "symbolAliases": [], "unitAlias": "" }, @@ -4344,7 +4344,7 @@ "name": "queryWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, + "referencedDeclaration": 1148, "src": "2341:16:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$791_memory_ptr_$", @@ -6113,7 +6113,7 @@ "1085:10:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1272, + "referencedDeclaration": 1278, "src": "1085:10:0" }, "id": 56, @@ -6127,7 +6127,7 @@ "fullyImplemented": true, "linearizedBaseContracts": [ 287, - 1272 + 1278 ], "name": "AaveV2Query", "nameLocation": "1070:11:0", diff --git a/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json b/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json index 5336abc..d8c7dbf 100644 --- a/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json +++ b/web/helpers/Sleuth/out/CometQuery.sol/CometQuery.json @@ -454,9 +454,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -651,13 +651,13 @@ } ], "bytecode": { - "object": "0x6080806040523461001657611f61908161001c8239f35b600080fdfe610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035d578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a73565b610eb3565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610ac2565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610ac2565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610cab565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a73565b6024359060ff821682036101d05761021d91610209916119a8565b604051918291602083526020830190610cab565b0390f35b346101d0576003196060368201126101d05761023b610a73565b6024359067ffffffffffffffff928383116101d057610160809184360301126101d057604051908101818110858211176103475760405261027e83600401610c34565b8152602483013560208201526044830135604082015260648301358481116101d0576102b09060043691860101610c64565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102df60e48401610c34565b60e08201526101048301356101008201526101248301359384116101d0576101446103339361031761021d9660043691840101610c64565b610120840152013561014082015261032d610a89565b91611d0f565b604051918291602083526020830190610ae7565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610376610a73565b6024356001600160a01b03811690036101d057610391610a89565b61039c610160610b9e565b6040516103a881610bbb565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015260006101a0610160015261047b82610eb3565b6040516370a0823160e01b8152602480356001600160a01b0390811660048401529194916020918691829085165afa93841561096c57600094610a3f575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401529195916020918791829086165afa94851561096c57600095610a0b575b50825151604051636eb1769f60e11b81526001600160a01b036024803582166004840152858216908301529091169590602081806044810103818a5afa90811561096c576000916109d9575b5082828103116109c357845160e08101516040808301516060840151608085015160a086015160c0870151602080890151985196516370a0823160e01b8152602480356001600160a01b039081166004840152919d999c939b9482169a95999698959693959394938e928391165afa9a8b1561096c5760009b61098f575b506040519e8f906105d282610bbb565b8152602001520360408d015260608c015260808b015260a08a015260c089015260e088015261010087015261012086015261014085015260a0820151519361061985610df3565b94604051956106289087610c12565b808652601f199061063890610df3565b0160005b81811061097857505060005b60a0840151805160ff8316101561069f579061067961069a926106726024359160ff851690610e70565b5186611d0f565b61068660ff831689610e70565b5261069460ff821688610e70565b50610e5f565b610648565b5050936020830151936040840151926060850151926020608087015193604460405180958193636eb1769f60e11b835260018060a01b0360243516600484015260018060a01b0316602483015260018060a01b03165afa91821561096c57600092610938575b5060c08601519060018060a01b0360243516319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061074b82610b9e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040516020815281516101c0602083015260018060a01b038151166101e0830152602081015161020083015260408101516102208301526060810151610240830152608081015161026083015260a081015161028083015261014061084461080b60c08401516101606102a0870152610340860190610ac2565b60e08401516001600160a01b03166102c08601526101008401516102e08601526101208401518582036101df1901610300870152610ac2565b910151610320830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061090b578680876101a08b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101518285015201516101c08301520390f35b9091929394602080610929600193601f198682030187528951610ae7565b970193019301919392906108ac565b9091506020813d602011610964575b8161095460209383610c12565b810103126101d057519088610705565b3d9150610947565b6040513d6000823e3d90fd5b60209061098361192a565b82828a0101520161063c565b909a506020813d6020116109bb575b816109ab60209383610c12565b810103126101d05751998f6105c2565b3d915061099e565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610a03575b816109f460209383610c12565b810103126101d0575187610544565b3d91506109e7565b9094506020813d602011610a37575b81610a2760209383610c12565b810103126101d0575193856104f8565b3d9150610a1a565b9093506020813d602011610a6b575b81610a5b60209383610c12565b810103126101d0575192846104b9565b3d9150610a4e565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610ab25750506000910152565b8181015183820152602001610aa2565b90602091610adb81518092818552858086019101610a9f565b601f01601f1916010190565b90610b8560018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b3960a08501516101c08060a0870152850190610ac2565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610ac2565b9161018080820151908301526101a08091015191015290565b6101c0810190811067ffffffffffffffff82111761034757604052565b610160810190811067ffffffffffffffff82111761034757604052565b610180810190811067ffffffffffffffff82111761034757604052565b610100810190811067ffffffffffffffff82111761034757604052565b90601f8019910116810190811067ffffffffffffffff82111761034757604052565b35906001600160a01b03821682036101d057565b67ffffffffffffffff811161034757601f01601f191660200190565b81601f820112156101d057803590610c7b82610c48565b92610c896040519485610c12565b828452602083830101116101d057816000926020809301838601378301015290565b90610d3260018060a01b038084511683526020840151602084015260408401516040840152610ce96060850151610160806060870152850190610ac2565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610ac2565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b519067ffffffffffffffff821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d05780519067ffffffffffffffff82116101d0570181601f820112156101d0578051610dc481610c48565b92610dd26040519485610c12565b818452602082840101116101d057610df09160208085019101610a9f565b90565b67ffffffffffffffff81116103475760051b60200190565b60405190610e1882610bbb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109c35760010190565b8051821015610e845760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109c3570290565b60a0526000610160604051610ec781610bd8565b604051610ed381610bf5565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360a051165afa801561096c57600060e0526118ef575b506040519063c55dae6360e01b825260208260048160018060a01b0360a051165afa91821561096c576000926118b3575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360a051165afa91821561096c57600092611877575b506040519163300e6beb60e01b835260208360048160018060a01b0360a051165afa92831561096c57600093611843575b506040516355d3f8af60e11b815260a051602090829060049082906001600160a01b03165afa90811561096c57600091611811575b506040519363189bb2f160e01b855260208560048160018060a01b0360a051165afa94851561096c576000956117dd575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360a051165afa91821561096c576000926117a9575b50604051936349b270c560e11b855260208560048160018060a01b0360a051165afa94851561096c57600095611775575b5060405197637eb7113160e01b895260208960048160018060a01b0360a051165afa98891561096c57600099611741575b50604051926318160ddd60e01b845260208460048160018060a01b0360a051165afa93841561096c5760009461170d575b506040519163020a17bd60e61b835260208360048160018060a01b0360a051165afa92831561096c576000936116d9575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360a051165afa94851561096c5760009561160d575b50604051634fd41dad60e11b8152600481018d905260a051602090829060249082906001600160a01b03165afa801561096c57600060c0526115d2575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360a051165afa9b8c1561096c5760009c611596575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561096c57600094611579575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561096c57600061010052611545575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561096c57600092611520575b506040516341976e0960e01b81526001600160a01b03848116600483015260a05191959160209187916024918391165afa94851561096c576000956114ec575b506040516101408181526370a0823160e01b90915260a05181516001600160a01b039182166004909101529051602091602490829085165afa80610120521561096c57600090610120516114b4575b61133860405180608052610bf5565b60018060a01b0316608051526020608051015261010051604060805101526060608051015260808051015260018060a01b031660a0608051015260c0608051015260e0608051015261138e60ff60e05116610df3565b9761139c604051998a610c12565b60ff60e051168952601f196113b560ff60e05116610df3565b0160005b81811061149c57505060005b60ff60e0511660ff8216101561140557806113e56114009260a0516119a8565b6113f260ff83168d610e70565b5261069460ff82168c610e70565b6113c5565b5091939597909294969861142f67ffffffffffffffff6114288160c05116610e9a565b9216610e9a565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6114598c610bd8565b6080518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936114aa610e0b565b92010152016113b9565b905060203d6020116114e5575b6114ce8161014051610c12565b6020610140518092810103126101d0575190611329565b503d6114c1565b9094506020813d602011611518575b8161150860209383610c12565b810103126101d0575193386112da565b3d91506114fb565b61153e9192503d806000833e6115368183610c12565b810190610d91565b903861129a565b6020813d602011611571575b8161155e60209383610c12565b810103126101d05751610100523861126a565b3d9150611551565b61158f9194503d806000833e6115368183610c12565b9238611239565b909b506020813d6020116115ca575b816115b260209383610c12565b810103126101d0576115c390610d62565b9a38611209565b3d91506115a5565b6020813d602011611605575b816115eb60209383610c12565b810103126101d0576115fc90610d62565b60c052386111d3565b3d91506115de565b909450610100813d610100116116d1575b8161162c6101009383610c12565b810103126101d0576040519061164182610bf5565b61164a81610d62565b825261165860208201610d62565b602083015261166960408201610d62565b604083015261167a60608201610d62565b606083015261168b60808201610d77565b608083015261169c60a08201610d77565b60a083015260c081015164ffffffffff811681036101d05760c08301526116c59060e001610d40565b60e08201529338611196565b3d915061161e565b9092506020813d602011611705575b816116f560209383610c12565b810103126101d057519138611164565b3d91506116e8565b9093506020813d602011611739575b8161172960209383610c12565b810103126101d057519238611133565b3d915061171c565b9098506020813d60201161176d575b8161175d60209383610c12565b810103126101d057519738611102565b3d9150611750565b9094506020813d6020116117a1575b8161179160209383610c12565b810103126101d0575193386110d1565b3d9150611784565b9091506020813d6020116117d5575b816117c560209383610c12565b810103126101d0575190386110a0565b3d91506117b8565b9094506020813d602011611809575b816117f960209383610c12565b810103126101d05751933861106f565b3d91506117ec565b90506020813d60201161183b575b8161182c60209383610c12565b810103126101d057513861103e565b3d915061181f565b9092506020813d60201161186f575b8161185f60209383610c12565b810103126101d057519138611009565b3d9150611852565b9091506020813d6020116118ab575b8161189360209383610c12565b810103126101d0576118a490610d4e565b9038610fd8565b3d9150611886565b9091506020813d6020116118e7575b816118cf60209383610c12565b810103126101d0576118e090610d4e565b9038610fa7565b3d91506118c2565b6020813d602011611922575b8161190860209383610c12565b810103126101d05761191990610d40565b60e05238610f76565b3d91506118fb565b6040519061193782610b9e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b906119b1610e0b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611bb857600093611c56575b5060209283810193838551169667ffffffffffffffff9060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c4b57600092611c1b575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b8e57908c97969594939291600095611c00575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bf557908c9160009a611bc3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611bb85760009e611b99575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b8e5760009d611b5c575b5082519d8e611b2a81610bbb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b87575b611b738183610c12565b81010312611b845750519b38611b1c565b80fd5b503d611b69565b83513d6000823e3d90fd5b611bb0908493929f3d8091833e6115368183610c12565b9d9091611aec565b85513d6000823e3d90fd5b9150988282813d8311611bee575b611bdb8183610c12565b81010312611b8457508b90519838611aad565b503d611bd1565b84513d6000823e3d90fd5b611c1491953d8091833e6115368183610c12565b9338611a79565b90918582813d8311611c44575b611c328183610c12565b81010312611b84575051906004611a36565b503d611c28565b50513d6000823e3d90fd5b90928382813d8311611d08575b611c6d8183610c12565b81010312611b845750611cfc60e0865192611c8784610bf5565b611c9081610d40565b8452611c9e60208201610d4e565b6020850152611cae888201610d4e565b88850152611cbe60608201610d62565b6060850152611ccf60808201610d62565b6080850152611ce060a08201610d62565b60a0850152611cf160c08201610d62565b60c085015201611994565b60e082015291386119f2565b503d611c63565b9190611d1961192a565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561096c57600092611ef6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561096c57600091611ebc575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561096c5760009d611e88575b50604051809e611e3482610b9e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611eb4575b81611ea360209383610c12565b81010312611b845750519b38611e25565b3d9150611e96565b906020823d602011611eee575b81611ed660209383610c12565b81010312611b845750611ee890611994565b38611da4565b3d9150611ec9565b90916020823d602011611f23575b81611f1160209383610c12565b81010312611b84575051906020611d60565b3d9150611f0456fea26469706673582212202e937a4bca8f6b184d39d37d48af5f8ef4770ad89df318b8478fb02a02515f6964736f6c63430008100033", - "sourceMap": "4152:7832:1:-:0;;;;;;;;;;;;;;;;;", + "object": "0x6080806040523461001657611f79908161001c8239f35b600080fdfe610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035d578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a83565b610ec3565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610ad2565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610ad2565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610cbb565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a83565b6024359060ff821682036101d05761021d91610209916119c0565b604051918291602083526020830190610cbb565b0390f35b346101d0576003196060368201126101d05761023b610a83565b6024359067ffffffffffffffff928383116101d057610160809184360301126101d057604051908101818110858211176103475760405261027e83600401610c44565b8152602483013560208201526044830135604082015260648301358481116101d0576102b09060043691860101610c74565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102df60e48401610c44565b60e08201526101048301356101008201526101248301359384116101d0576101446103339361031761021d9660043691840101610c74565b610120840152013561014082015261032d610a99565b91611d27565b604051918291602083526020830190610af7565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610376610a83565b6024356001600160a01b03811690036101d057610391610a99565b61039c610160610bae565b6040516103a881610bcb565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015260006101a0610160015261047b82610ec3565b6040516370a0823160e01b8152602480356001600160a01b0390811660048401529194916020918691829085165afa93841561097c57600094610a4f575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401529195916020918791829086165afa94851561097c57600095610a1b575b50825151604051636eb1769f60e11b81526001600160a01b036024803582166004840152858216908301529091169590602081806044810103818a5afa90811561097c576000916109e9575b506000821283838103128116908484810313901516176109d357845160e08101516040808301516060840151608085015160a086015160c0870151602080890151985196516370a0823160e01b8152602480356001600160a01b039081166004840152919d999c939b9482169a95999698959693959394938e928391165afa9a8b1561097c5760009b61099f575b506040519e8f906105e282610bcb565b8152602001520360408d015260608c015260808b015260a08a015260c089015260e088015261010087015261012086015261014085015260a0820151519361062985610e03565b94604051956106389087610c22565b808652601f199061064890610e03565b0160005b81811061098857505060005b60a0840151805160ff831610156106af57906106896106aa926106826024359160ff851690610e80565b5186611d27565b61069660ff831689610e80565b526106a460ff821688610e80565b50610e6f565b610658565b5050936020830151936040840151926060850151926020608087015193604460405180958193636eb1769f60e11b835260018060a01b0360243516600484015260018060a01b0316602483015260018060a01b03165afa91821561097c57600092610948575b5060c08601519060018060a01b0360243516319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061075b82610bae565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040516020815281516101c0602083015260018060a01b038151166101e0830152602081015161020083015260408101516102208301526060810151610240830152608081015161026083015260a081015161028083015261014061085461081b60c08401516101606102a0870152610340860190610ad2565b60e08401516001600160a01b03166102c08601526101008401516102e08601526101208401518582036101df1901610300870152610ad2565b910151610320830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061091b578680876101a08b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101518285015201516101c08301520390f35b9091929394602080610939600193601f198682030187528951610af7565b970193019301919392906108bc565b9091506020813d602011610974575b8161096460209383610c22565b810103126101d057519088610715565b3d9150610957565b6040513d6000823e3d90fd5b602090610993611942565b82828a0101520161064c565b909a506020813d6020116109cb575b816109bb60209383610c22565b810103126101d05751998f6105d2565b3d91506109ae565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610a13575b81610a0460209383610c22565b810103126101d0575187610544565b3d91506109f7565b9094506020813d602011610a47575b81610a3760209383610c22565b810103126101d0575193856104f8565b3d9150610a2a565b9093506020813d602011610a7b575b81610a6b60209383610c22565b810103126101d0575192846104b9565b3d9150610a5e565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610ac25750506000910152565b8181015183820152602001610ab2565b90602091610aeb81518092818552858086019101610aaf565b601f01601f1916010190565b90610b9560018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b4960a08501516101c08060a0870152850190610ad2565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610ad2565b9161018080820151908301526101a08091015191015290565b6101c0810190811067ffffffffffffffff82111761034757604052565b610160810190811067ffffffffffffffff82111761034757604052565b610180810190811067ffffffffffffffff82111761034757604052565b610100810190811067ffffffffffffffff82111761034757604052565b90601f8019910116810190811067ffffffffffffffff82111761034757604052565b35906001600160a01b03821682036101d057565b67ffffffffffffffff811161034757601f01601f191660200190565b81601f820112156101d057803590610c8b82610c58565b92610c996040519485610c22565b828452602083830101116101d057816000926020809301838601378301015290565b90610d4260018060a01b038084511683526020840151602084015260408401516040840152610cf96060850151610160806060870152850190610ad2565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610ad2565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b519067ffffffffffffffff821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d05780519067ffffffffffffffff82116101d0570181601f820112156101d0578051610dd481610c58565b92610de26040519485610c22565b818452602082840101116101d057610e009160208085019101610aaf565b90565b67ffffffffffffffff81116103475760051b60200190565b60405190610e2882610bcb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109d35760010190565b8051821015610e945760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109d3570290565b6080526000610160604051610ed781610be8565b604051610ee381610c05565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b03608051165afa801561097c57600060c052611907575b506040519063c55dae6360e01b825260208260048160018060a01b03608051165afa91821561097c576000926118cb575b506040519063e7dad6bd60e01b825260208260048160018060a01b03608051165afa91821561097c5760009261188f575b506040519163300e6beb60e01b835260208360048160018060a01b03608051165afa92831561097c5760009361185b575b506040516355d3f8af60e11b8152608051602090829060049082906001600160a01b03165afa90811561097c57600091611829575b506040519363189bb2f160e01b855260208560048160018060a01b03608051165afa94851561097c576000956117f5575b5060405190634f54cd2d60e11b825260208260048160018060a01b03608051165afa91821561097c576000926117c1575b50604051936349b270c560e11b855260208560048160018060a01b03608051165afa94851561097c5760009561178d575b5060405197637eb7113160e01b895260208960048160018060a01b03608051165afa98891561097c57600099611759575b50604051926318160ddd60e01b845260208460048160018060a01b03608051165afa93841561097c57600094611725575b506040519163020a17bd60e61b835260208360048160018060a01b03608051165afa92831561097c576000936116f1575b506040519363b9f0baf760e01b85526101008560048160018060a01b03608051165afa94851561097c57600095611625575b50604051634fd41dad60e11b8152600481018d9052608051602090829060249082906001600160a01b03165afa801561097c57600060a0526115ea575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b03608051165afa9b8c1561097c5760009c6115ae575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561097c57600094611591575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561097c57600060e05261155e575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561097c57600092611539575b506040516341976e0960e01b81526001600160a01b03848116600483015260805191959160209187916024918391165afa94851561097c57600095611505575b506040516101408181526370a0823160e01b90915260805181516001600160a01b039182166004909101529051602091602490829085165afa80610120521561097c57600090610120516114cd575b6113486040518061010052610c05565b60018060a01b03166101005152602061010051015260e05160406101005101526060610100510152608061010051015260018060a01b031660a061010051015260c061010051015260e06101005101526113a660ff60c05116610e03565b976113b4604051998a610c22565b60ff60c051168952601f196113cd60ff60c05116610e03565b0160005b8181106114b557505060005b60ff60c0511660ff8216101561141d57806113fd611418926080516119c0565b61140a60ff83168d610e80565b526106a460ff82168c610e80565b6113dd565b5091939597909294969861144767ffffffffffffffff6114408160a05116610eaa565b9216610eaa565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6114718c610be8565b610100518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936114c3610e1b565b92010152016113d1565b905060203d6020116114fe575b6114e78161014051610c22565b6020610140518092810103126101d0575190611338565b503d6114da565b9094506020813d602011611531575b8161152160209383610c22565b810103126101d0575193386112e9565b3d9150611514565b6115579192503d806000833e61154f8183610c22565b810190610da1565b90386112a9565b6020813d602011611589575b8161157760209383610c22565b810103126101d0575160e05238611279565b3d915061156a565b6115a79194503d806000833e61154f8183610c22565b9238611249565b909b506020813d6020116115e2575b816115ca60209383610c22565b810103126101d0576115db90610d72565b9a38611219565b3d91506115bd565b6020813d60201161161d575b8161160360209383610c22565b810103126101d05761161490610d72565b60a052386111e3565b3d91506115f6565b909450610100813d610100116116e9575b816116446101009383610c22565b810103126101d0576040519061165982610c05565b61166281610d72565b825261167060208201610d72565b602083015261168160408201610d72565b604083015261169260608201610d72565b60608301526116a360808201610d87565b60808301526116b460a08201610d87565b60a083015260c081015164ffffffffff811681036101d05760c08301526116dd9060e001610d50565b60e082015293386111a6565b3d9150611636565b9092506020813d60201161171d575b8161170d60209383610c22565b810103126101d057519138611174565b3d9150611700565b9093506020813d602011611751575b8161174160209383610c22565b810103126101d057519238611143565b3d9150611734565b9098506020813d602011611785575b8161177560209383610c22565b810103126101d057519738611112565b3d9150611768565b9094506020813d6020116117b9575b816117a960209383610c22565b810103126101d0575193386110e1565b3d915061179c565b9091506020813d6020116117ed575b816117dd60209383610c22565b810103126101d0575190386110b0565b3d91506117d0565b9094506020813d602011611821575b8161181160209383610c22565b810103126101d05751933861107f565b3d9150611804565b90506020813d602011611853575b8161184460209383610c22565b810103126101d057513861104e565b3d9150611837565b9092506020813d602011611887575b8161187760209383610c22565b810103126101d057519138611019565b3d915061186a565b9091506020813d6020116118c3575b816118ab60209383610c22565b810103126101d0576118bc90610d5e565b9038610fe8565b3d915061189e565b9091506020813d6020116118ff575b816118e760209383610c22565b810103126101d0576118f890610d5e565b9038610fb7565b3d91506118da565b6020813d60201161193a575b8161192060209383610c22565b810103126101d05761193190610d50565b60c05238610f86565b3d9150611913565b6040519061194f82610bae565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b906119c9610e1b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611bd057600093611c6e575b5060209283810193838551169667ffffffffffffffff9060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c6357600092611c33575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611ba657908c97969594939291600095611c18575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611c0d57908c9160009a611bdb575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611bd05760009e611bb1575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611ba65760009d611b74575b5082519d8e611b4281610bcb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b9f575b611b8b8183610c22565b81010312611b9c5750519b38611b34565b80fd5b503d611b81565b83513d6000823e3d90fd5b611bc8908493929f3d8091833e61154f8183610c22565b9d9091611b04565b85513d6000823e3d90fd5b9150988282813d8311611c06575b611bf38183610c22565b81010312611b9c57508b90519838611ac5565b503d611be9565b84513d6000823e3d90fd5b611c2c91953d8091833e61154f8183610c22565b9338611a91565b90918582813d8311611c5c575b611c4a8183610c22565b81010312611b9c575051906004611a4e565b503d611c40565b50513d6000823e3d90fd5b90928382813d8311611d20575b611c858183610c22565b81010312611b9c5750611d1460e0865192611c9f84610c05565b611ca881610d50565b8452611cb660208201610d5e565b6020850152611cc6888201610d5e565b88850152611cd660608201610d72565b6060850152611ce760808201610d72565b6080850152611cf860a08201610d72565b60a0850152611d0960c08201610d72565b60c0850152016119ac565b60e08201529138611a0a565b503d611c7b565b9190611d31611942565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561097c57600092611f0e575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561097c57600091611ed4575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561097c5760009d611ea0575b50604051809e611e4c82610bae565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611ecc575b81611ebb60209383610c22565b81010312611b9c5750519b38611e3d565b3d9150611eae565b906020823d602011611f06575b81611eee60209383610c22565b81010312611b9c5750611f00906119ac565b38611dbc565b3d9150611ee1565b90916020823d602011611f3b575b81611f2960209383610c22565b81010312611b9c575051906020611d78565b3d9150611f1c56fea2646970667358221220345782715bdaa9a2ba7d9caf1ab46ea2fb0d56ce2c36fa2205346cd4c81ad5d164736f6c63430008100033", + "sourceMap": "4152:7841:1:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035d578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a73565b610eb3565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610ac2565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610ac2565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610cab565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a73565b6024359060ff821682036101d05761021d91610209916119a8565b604051918291602083526020830190610cab565b0390f35b346101d0576003196060368201126101d05761023b610a73565b6024359067ffffffffffffffff928383116101d057610160809184360301126101d057604051908101818110858211176103475760405261027e83600401610c34565b8152602483013560208201526044830135604082015260648301358481116101d0576102b09060043691860101610c64565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102df60e48401610c34565b60e08201526101048301356101008201526101248301359384116101d0576101446103339361031761021d9660043691840101610c64565b610120840152013561014082015261032d610a89565b91611d0f565b604051918291602083526020830190610ae7565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610376610a73565b6024356001600160a01b03811690036101d057610391610a89565b61039c610160610b9e565b6040516103a881610bbb565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015260006101a0610160015261047b82610eb3565b6040516370a0823160e01b8152602480356001600160a01b0390811660048401529194916020918691829085165afa93841561096c57600094610a3f575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401529195916020918791829086165afa94851561096c57600095610a0b575b50825151604051636eb1769f60e11b81526001600160a01b036024803582166004840152858216908301529091169590602081806044810103818a5afa90811561096c576000916109d9575b5082828103116109c357845160e08101516040808301516060840151608085015160a086015160c0870151602080890151985196516370a0823160e01b8152602480356001600160a01b039081166004840152919d999c939b9482169a95999698959693959394938e928391165afa9a8b1561096c5760009b61098f575b506040519e8f906105d282610bbb565b8152602001520360408d015260608c015260808b015260a08a015260c089015260e088015261010087015261012086015261014085015260a0820151519361061985610df3565b94604051956106289087610c12565b808652601f199061063890610df3565b0160005b81811061097857505060005b60a0840151805160ff8316101561069f579061067961069a926106726024359160ff851690610e70565b5186611d0f565b61068660ff831689610e70565b5261069460ff821688610e70565b50610e5f565b610648565b5050936020830151936040840151926060850151926020608087015193604460405180958193636eb1769f60e11b835260018060a01b0360243516600484015260018060a01b0316602483015260018060a01b03165afa91821561096c57600092610938575b5060c08601519060018060a01b0360243516319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061074b82610b9e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040516020815281516101c0602083015260018060a01b038151166101e0830152602081015161020083015260408101516102208301526060810151610240830152608081015161026083015260a081015161028083015261014061084461080b60c08401516101606102a0870152610340860190610ac2565b60e08401516001600160a01b03166102c08601526101008401516102e08601526101208401518582036101df1901610300870152610ac2565b910151610320830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061090b578680876101a08b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101518285015201516101c08301520390f35b9091929394602080610929600193601f198682030187528951610ae7565b970193019301919392906108ac565b9091506020813d602011610964575b8161095460209383610c12565b810103126101d057519088610705565b3d9150610947565b6040513d6000823e3d90fd5b60209061098361192a565b82828a0101520161063c565b909a506020813d6020116109bb575b816109ab60209383610c12565b810103126101d05751998f6105c2565b3d915061099e565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610a03575b816109f460209383610c12565b810103126101d0575187610544565b3d91506109e7565b9094506020813d602011610a37575b81610a2760209383610c12565b810103126101d0575193856104f8565b3d9150610a1a565b9093506020813d602011610a6b575b81610a5b60209383610c12565b810103126101d0575192846104b9565b3d9150610a4e565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610ab25750506000910152565b8181015183820152602001610aa2565b90602091610adb81518092818552858086019101610a9f565b601f01601f1916010190565b90610b8560018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b3960a08501516101c08060a0870152850190610ac2565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610ac2565b9161018080820151908301526101a08091015191015290565b6101c0810190811067ffffffffffffffff82111761034757604052565b610160810190811067ffffffffffffffff82111761034757604052565b610180810190811067ffffffffffffffff82111761034757604052565b610100810190811067ffffffffffffffff82111761034757604052565b90601f8019910116810190811067ffffffffffffffff82111761034757604052565b35906001600160a01b03821682036101d057565b67ffffffffffffffff811161034757601f01601f191660200190565b81601f820112156101d057803590610c7b82610c48565b92610c896040519485610c12565b828452602083830101116101d057816000926020809301838601378301015290565b90610d3260018060a01b038084511683526020840151602084015260408401516040840152610ce96060850151610160806060870152850190610ac2565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610ac2565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b519067ffffffffffffffff821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d05780519067ffffffffffffffff82116101d0570181601f820112156101d0578051610dc481610c48565b92610dd26040519485610c12565b818452602082840101116101d057610df09160208085019101610a9f565b90565b67ffffffffffffffff81116103475760051b60200190565b60405190610e1882610bbb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109c35760010190565b8051821015610e845760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109c3570290565b60a0526000610160604051610ec781610bd8565b604051610ed381610bf5565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360a051165afa801561096c57600060e0526118ef575b506040519063c55dae6360e01b825260208260048160018060a01b0360a051165afa91821561096c576000926118b3575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360a051165afa91821561096c57600092611877575b506040519163300e6beb60e01b835260208360048160018060a01b0360a051165afa92831561096c57600093611843575b506040516355d3f8af60e11b815260a051602090829060049082906001600160a01b03165afa90811561096c57600091611811575b506040519363189bb2f160e01b855260208560048160018060a01b0360a051165afa94851561096c576000956117dd575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360a051165afa91821561096c576000926117a9575b50604051936349b270c560e11b855260208560048160018060a01b0360a051165afa94851561096c57600095611775575b5060405197637eb7113160e01b895260208960048160018060a01b0360a051165afa98891561096c57600099611741575b50604051926318160ddd60e01b845260208460048160018060a01b0360a051165afa93841561096c5760009461170d575b506040519163020a17bd60e61b835260208360048160018060a01b0360a051165afa92831561096c576000936116d9575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360a051165afa94851561096c5760009561160d575b50604051634fd41dad60e11b8152600481018d905260a051602090829060249082906001600160a01b03165afa801561096c57600060c0526115d2575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360a051165afa9b8c1561096c5760009c611596575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561096c57600094611579575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561096c57600061010052611545575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561096c57600092611520575b506040516341976e0960e01b81526001600160a01b03848116600483015260a05191959160209187916024918391165afa94851561096c576000956114ec575b506040516101408181526370a0823160e01b90915260a05181516001600160a01b039182166004909101529051602091602490829085165afa80610120521561096c57600090610120516114b4575b61133860405180608052610bf5565b60018060a01b0316608051526020608051015261010051604060805101526060608051015260808051015260018060a01b031660a0608051015260c0608051015260e0608051015261138e60ff60e05116610df3565b9761139c604051998a610c12565b60ff60e051168952601f196113b560ff60e05116610df3565b0160005b81811061149c57505060005b60ff60e0511660ff8216101561140557806113e56114009260a0516119a8565b6113f260ff83168d610e70565b5261069460ff82168c610e70565b6113c5565b5091939597909294969861142f67ffffffffffffffff6114288160c05116610e9a565b9216610e9a565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6114598c610bd8565b6080518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936114aa610e0b565b92010152016113b9565b905060203d6020116114e5575b6114ce8161014051610c12565b6020610140518092810103126101d0575190611329565b503d6114c1565b9094506020813d602011611518575b8161150860209383610c12565b810103126101d0575193386112da565b3d91506114fb565b61153e9192503d806000833e6115368183610c12565b810190610d91565b903861129a565b6020813d602011611571575b8161155e60209383610c12565b810103126101d05751610100523861126a565b3d9150611551565b61158f9194503d806000833e6115368183610c12565b9238611239565b909b506020813d6020116115ca575b816115b260209383610c12565b810103126101d0576115c390610d62565b9a38611209565b3d91506115a5565b6020813d602011611605575b816115eb60209383610c12565b810103126101d0576115fc90610d62565b60c052386111d3565b3d91506115de565b909450610100813d610100116116d1575b8161162c6101009383610c12565b810103126101d0576040519061164182610bf5565b61164a81610d62565b825261165860208201610d62565b602083015261166960408201610d62565b604083015261167a60608201610d62565b606083015261168b60808201610d77565b608083015261169c60a08201610d77565b60a083015260c081015164ffffffffff811681036101d05760c08301526116c59060e001610d40565b60e08201529338611196565b3d915061161e565b9092506020813d602011611705575b816116f560209383610c12565b810103126101d057519138611164565b3d91506116e8565b9093506020813d602011611739575b8161172960209383610c12565b810103126101d057519238611133565b3d915061171c565b9098506020813d60201161176d575b8161175d60209383610c12565b810103126101d057519738611102565b3d9150611750565b9094506020813d6020116117a1575b8161179160209383610c12565b810103126101d0575193386110d1565b3d9150611784565b9091506020813d6020116117d5575b816117c560209383610c12565b810103126101d0575190386110a0565b3d91506117b8565b9094506020813d602011611809575b816117f960209383610c12565b810103126101d05751933861106f565b3d91506117ec565b90506020813d60201161183b575b8161182c60209383610c12565b810103126101d057513861103e565b3d915061181f565b9092506020813d60201161186f575b8161185f60209383610c12565b810103126101d057519138611009565b3d9150611852565b9091506020813d6020116118ab575b8161189360209383610c12565b810103126101d0576118a490610d4e565b9038610fd8565b3d9150611886565b9091506020813d6020116118e7575b816118cf60209383610c12565b810103126101d0576118e090610d4e565b9038610fa7565b3d91506118c2565b6020813d602011611922575b8161190860209383610c12565b810103126101d05761191990610d40565b60e05238610f76565b3d91506118fb565b6040519061193782610b9e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b906119b1610e0b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611bb857600093611c56575b5060209283810193838551169667ffffffffffffffff9060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c4b57600092611c1b575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611b8e57908c97969594939291600095611c00575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611bf557908c9160009a611bc3575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611bb85760009e611b99575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611b8e5760009d611b5c575b5082519d8e611b2a81610bbb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b87575b611b738183610c12565b81010312611b845750519b38611b1c565b80fd5b503d611b69565b83513d6000823e3d90fd5b611bb0908493929f3d8091833e6115368183610c12565b9d9091611aec565b85513d6000823e3d90fd5b9150988282813d8311611bee575b611bdb8183610c12565b81010312611b8457508b90519838611aad565b503d611bd1565b84513d6000823e3d90fd5b611c1491953d8091833e6115368183610c12565b9338611a79565b90918582813d8311611c44575b611c328183610c12565b81010312611b84575051906004611a36565b503d611c28565b50513d6000823e3d90fd5b90928382813d8311611d08575b611c6d8183610c12565b81010312611b845750611cfc60e0865192611c8784610bf5565b611c9081610d40565b8452611c9e60208201610d4e565b6020850152611cae888201610d4e565b88850152611cbe60608201610d62565b6060850152611ccf60808201610d62565b6080850152611ce060a08201610d62565b60a0850152611cf160c08201610d62565b60c085015201611994565b60e082015291386119f2565b503d611c63565b9190611d1961192a565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561096c57600092611ef6575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561096c57600091611ebc575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561096c5760009d611e88575b50604051809e611e3482610b9e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611eb4575b81611ea360209383610c12565b81010312611b845750519b38611e25565b3d9150611e96565b906020823d602011611eee575b81611ed660209383610c12565b81010312611b845750611ee890611994565b38611da4565b3d9150611ec9565b90916020823d602011611f23575b81611f1160209383610c12565b81010312611b84575051906020611d60565b3d9150611f0456fea26469706673582212202e937a4bca8f6b184d39d37d48af5f8ef4770ad89df318b8478fb02a02515f6964736f6c63430008100033", - "sourceMap": "4152:7832:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8386:12;;;:::i;:::-;4152:7832;;-1:-1:-1;;;8435:24:1;;4152:7832;;;-1:-1:-1;;;;;4152:7832:1;;;;8435:24;;4152:7832;;;;;;;;;;;;8435:24;;;;;;;4152:7832;8435:24;;;4152:7832;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;8495:30:1;;4152:7832;;;-1:-1:-1;;;;;4152:7832:1;;;;8495:30;;4152:7832;;;;;;;;;;;;8495:30;;;;;;;4152:7832;8495:30;;;4152:7832;-1:-1:-1;8622:18:1;;4152:7832;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;4152:7832:1;;;;;;8669:70;;4152:7832;;;;;;;;;;;;;;;;;;;8669:70;;;;;;;;;;4152:7832;8669:70;;;4152:7832;;;;;;;;;8819:18;;4152:7832;8819:25;;;4152:7832;8862:27;;;4152:7832;;8908:28;;4152:7832;;8950:23;;;4152:7832;8992:28;;4152:7832;;9035:24;;4152:7832;;9083:33;;;4152:7832;;;;;-1:-1:-1;;;9139:54:1;;4152:7832;;;-1:-1:-1;;;;;4152:7832:1;;;;9139:54;;4152:7832;;;8819:25;;4152:7832;;;;;;8950:23;;4152:7832;;;;8819:25;;:18;;9083:33;4152:7832;;;;;9139:54;;;;;;;4152:7832;9139:54;;;4152:7832;;;;;;;;;;:::i;:::-;;;;8577:623;4152:7832;;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;8577:623;;4152:7832;;9302:25;;;4152:7832;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4152:7832:1;;;;:::i;:::-;;;;;;;;;9351:11;;4152:7832;9402:3;4152:7832;9302:25;;9368;4152:7832;;;;;9364:36;;;;4152:7832;9427:71;9402:3;4152:7832;9460:28;4152:7832;;;;;;9460:28;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;4152:7832;;;9415:83;;:::i;:::-;;;4152:7832;;;9415:83;;:::i;:::-;;9402:3;:::i;:::-;9351:11;;9364:36;;;;4152:7832;9610:26;;4152:7832;9671:32;4152:7832;9671:32;;4152:7832;9738:32;4152:7832;9738:32;;4152:7832;9791:18;4152:7832;;9791:18;;4152:7832;;;;;;;;;;;;9836:32;;4152:7832;;;;;;;;;9836:32;;4152:7832;;;;;;;;;;;;;;;;;9836:32;;;;;;;4152:7832;9836:32;;;9346:159;9921:16;4152:7832;9921:16;;4152:7832;;;;;;;;;;9973:15;10011:20;4152:7832;10011:20;;4152:7832;10063:29;4152:7832;10063:29;;4152:7832;10115:20;4152:7832;10115:20;;4152:7832;10167:29;4152:7832;;10167:29;;4152:7832;10226:27;;4152:7832;;;;;;;;;;;:::i;:::-;;;9524:738;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;9524:738;;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;4152:7832:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7832:1;;;;;;:::i;:::-;;;;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9524:738;;;4152:7832;9524:738;4152:7832;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;;9524:738;;4152:7832;;;;;9524:738;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9836:32;;;;4152:7832;9836:32;;4152:7832;9836:32;;;;;;4152:7832;9836:32;;;:::i;:::-;;;4152:7832;;;;;9836:32;;;;;;;-1:-1:-1;9836:32:1;;;4152:7832;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9139:54;;;;4152:7832;9139:54;;4152:7832;9139:54;;;;;;4152:7832;9139:54;;;:::i;:::-;;;4152:7832;;;;;9139:54;;;;;;;-1:-1:-1;9139:54:1;;4152:7832;;;;;;;;;;;;8669:70;;;4152:7832;8669:70;;4152:7832;8669:70;;;;;;4152:7832;8669:70;;;:::i;:::-;;;4152:7832;;;;;8669:70;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;;4152:7832;8495:30;;4152:7832;8495:30;;;;;;4152:7832;8495:30;;;:::i;:::-;;;4152:7832;;;;;8495:30;;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;;4152:7832;8435:24;;4152:7832;8435:24;;;;;;4152:7832;8435:24;;;:::i;:::-;;;4152:7832;;;;;8435:24;;;;;;;-1:-1:-1;8435:24:1;;4152:7832;;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7832:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4152:7832:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7832:1;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18;;;;;;;;;;;;;;;;;:::o;6180:2007::-;;;-1:-1:-1;4152:7832:1;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007;4152:7832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6271:17;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6271:17;;;;;;-1:-1:-1;4152:7832:1;6271:17;;;6180:2007;4152:7832;;;;;;;6314:17;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6314:17;;;;;;;-1:-1:-1;6314:17:1;;;6180:2007;4152:7832;;;;;;;6366:26;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6366:26;;;;;;;-1:-1:-1;6366:26:1;;;6180:2007;4152:7832;;;;;;;6415:21;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6415:21;;;;;;;-1:-1:-1;6415:21:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;6468:26:1;;4152:7832;6271:15;4152:7832;;;;6271:17;;4152:7832;;-1:-1:-1;;;;;4152:7832:1;6468:26;;;;;;;-1:-1:-1;6468:26:1;;;6180:2007;4152:7832;;;;;;;6531:31;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6531:31;;;;;;;-1:-1:-1;6531:31:1;;;6180:2007;4152:7832;;;;;;;6599:31;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6599:31;;;;;;;-1:-1:-1;6599:31:1;;;6180:2007;4152:7832;;;;;;;6661:25;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6661:25;;;;;;;-1:-1:-1;6661:25:1;;;6180:2007;4152:7832;;;;;;;6711:22;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6711:22;;;;;;;-1:-1:-1;6711:22:1;;;6180:2007;4152:7832;;;;;;;6758:19;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6758:19;;;;;;;-1:-1:-1;6758:19:1;;;6180:2007;4152:7832;;;;;;;6802:19;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6802:19;;;;;;;-1:-1:-1;6802:19:1;;;6180:2007;4152:7832;;;;;;;6866:19;;4152:7832;;6271:17;4152:7832;;;;;;6180:2007;6271:15;4152:7832;6866:19;;;;;;;-1:-1:-1;6866:19:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;6918:32:1;;6271:17;6918:32;;4152:7832;;;;6271:15;4152:7832;;;;;;;;-1:-1:-1;;;;;4152:7832:1;6918:32;;;;;;-1:-1:-1;4152:7832:1;6918:32;;;6180:2007;4152:7832;;;;;;;6983:32;;6271:17;6983:32;;4152:7832;;;;;;;;;;6180:2007;6271:15;4152:7832;6983:32;;;;;;;-1:-1:-1;6983:32:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7105:25:1;;4152:7832;-1:-1:-1;4152:7832:1;6271:17;4152:7832;-1:-1:-1;;;;;4152:7832:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7148:27:1;;4152:7832;;6271:17;4152:7832;-1:-1:-1;;;;;4152:7832:1;;7148:27;;;;;;-1:-1:-1;4152:7832:1;7148:27;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7217:23:1;;4152:7832;-1:-1:-1;4152:7832:1;6271:17;4152:7832;-1:-1:-1;;;;;4152:7832:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;6180:2007;-1:-1:-1;4152:7832:1;;-1:-1:-1;;;7292:34:1;;-1:-1:-1;;;;;4152:7832:1;;;6271:17;7292:34;;4152:7832;;6271:15;4152:7832;;;;;;;;;;;;7292:34;;;;;;;-1:-1:-1;7292:34:1;;;6180:2007;-1:-1:-1;4152:7832:1;;;7350:42;;;-1:-1:-1;;;7350:42:1;;;4152:7832;6271:15;7350:42;;-1:-1:-1;;;;;4152:7832:1;;;6271:17;7350:42;;;4152:7832;7350:42;;4152:7832;;;;7350:42;;4152:7832;;7350:42;;;4152:7832;7350:42;;;;-1:-1:-1;7350:42:1;4152:7832;7350:42;;;6180:2007;4152:7832;;;;;;;:::i;:::-;;;;;;;;;;;;7051:348;;4152:7832;;;;;7051:348;;4152:7832;;;7051:348;;4152:7832;;7051:348;;;4152:7832;;;;;;;6180:2007;4152:7832;7051:348;;4152:7832;;;7051:348;;4152:7832;;;7051:348;;4152:7832;;;;6254:34;4152:7832;;:::i;:::-;;;;;;;;:::i;:::-;;;6254:34;4152:7832;;;;;;;;6254:34;4152:7832;;:::i;:::-;;-1:-1:-1;4152:7832:1;;;;;;7483:11;;-1:-1:-1;7511:3:1;4152:7832;;6254:34;4152:7832;;;;7496:13;;;;7536:24;;7511:3;7536:24;6180:2007;7536:24;;:::i;:::-;7524:36;4152:7832;;;7524:36;;:::i;:::-;;;4152:7832;;;7524:36;;:::i;7511:3::-;7483:11;;7496:13;;;;;;;;;;;7901:38;4152:7832;7810:38;6891:59;4152:7832;6891:59;4152:7832;7810:38;:::i;:::-;4152:7832;;7901:38;:::i;:::-;4152:7832;;;8005:27;6180:2007;8005:27;;4218:18;4152:7832;8098:27;;4218:18;4152:7832;;;;;;;;:::i;:::-;;;;;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;6180:2007;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;;7586:596;;4152:7832;6180:2007;:::o;4152:7832::-;;;;;;;;:::i;:::-;;;;;;;;7350:42;;;4152:7832;7350:42;4152:7832;7350:42;;;;;;4152:7832;7350:42;;:::i;:::-;4152:7832;;;7350:42;;;;4152:7832;;;;;7350:42;;;;;;;;7292:34;;;;4152:7832;7292:34;;4152:7832;7292:34;;;;;;4152:7832;7292:34;;;:::i;:::-;;;4152:7832;;;;;7292:34;;;;;;;-1:-1:-1;7292:34:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7148:27;4152:7832;7148:27;;4152:7832;7148:27;;;;;;4152:7832;7148:27;;;:::i;:::-;;;4152:7832;;;;;;7148:27;;;;;;;-1:-1:-1;7148:27:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;;;;:::i;:::-;;;;;6983:32;;;;4152:7832;6983:32;;4152:7832;6983:32;;;;;;4152:7832;6983:32;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;6983:32;;;;;;;-1:-1:-1;6983:32:1;;6918;4152:7832;6918:32;;4152:7832;6918:32;;;;;;4152:7832;6918:32;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;;6918:32;;;;;;;-1:-1:-1;6918:32:1;;6866:19;;;;4152:7832;6866:19;;4152:7832;6866:19;;;;;;4152:7832;6866:19;;;:::i;:::-;;;4152:7832;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;6180:2007;4152:7832;;;:::i;:::-;6180:2007;4152:7832;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6866:19;;;;;;;-1:-1:-1;6866:19:1;;6802;;;;4152:7832;6802:19;;4152:7832;6802:19;;;;;;4152:7832;6802:19;;;:::i;:::-;;;4152:7832;;;;;6802:19;;;;;;;-1:-1:-1;6802:19:1;;6758;;;;4152:7832;6758:19;;4152:7832;6758:19;;;;;;4152:7832;6758:19;;;:::i;:::-;;;4152:7832;;;;;6758:19;;;;;;;-1:-1:-1;6758:19:1;;6711:22;;;;4152:7832;6711:22;;4152:7832;6711:22;;;;;;4152:7832;6711:22;;;:::i;:::-;;;4152:7832;;;;;6711:22;;;;;;;-1:-1:-1;6711:22:1;;6661:25;;;;4152:7832;6661:25;;4152:7832;6661:25;;;;;;4152:7832;6661:25;;;:::i;:::-;;;4152:7832;;;;;6661:25;;;;;;;-1:-1:-1;6661:25:1;;6599:31;;;;4152:7832;6599:31;;4152:7832;6599:31;;;;;;4152:7832;6599:31;;;:::i;:::-;;;4152:7832;;;;;6599:31;;;;;;;-1:-1:-1;6599:31:1;;6531;;;;4152:7832;6531:31;;4152:7832;6531:31;;;;;;4152:7832;6531:31;;;:::i;:::-;;;4152:7832;;;;;6531:31;;;;;;;-1:-1:-1;6531:31:1;;6468:26;;;4152:7832;6468:26;;4152:7832;6468:26;;;;;;4152:7832;6468:26;;;:::i;:::-;;;4152:7832;;;;;6468:26;;;;;;-1:-1:-1;6468:26:1;;6415:21;;;;4152:7832;6415:21;;4152:7832;6415:21;;;;;;4152:7832;6415:21;;;:::i;:::-;;;4152:7832;;;;;6415:21;;;;;;;-1:-1:-1;6415:21:1;;6366:26;;;;4152:7832;6366:26;;4152:7832;6366:26;;;;;;4152:7832;6366:26;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;6366:26;;;;;;;-1:-1:-1;6366:26:1;;6314:17;;;;4152:7832;6314:17;;4152:7832;6314:17;;;;;;4152:7832;6314:17;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;6314:17;;;;;;;-1:-1:-1;6314:17:1;;6271;4152:7832;6271:17;;4152:7832;6271:17;;;;;;4152:7832;6271:17;;;:::i;:::-;;;4152:7832;;;;;;;:::i;:::-;;6271:17;;;;;;;-1:-1:-1;6271:17:1;;4152:7832;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7832:1;;;;;;:::o;10271:782::-;;4152:7832;;:::i;:::-;-1:-1:-1;4152:7832:1;;;-1:-1:-1;;;10407:25:1;;4152:7832;;;;10407:25;;;4152:7832;;-1:-1:-1;;;;;4152:7832:1;;;;;10407:25;;4152:7832;;;;10407:25;;;;;;;-1:-1:-1;10407:25:1;;;10271:782;4152:7832;;10495:15;;;;4152:7832;;;;;;;10538:32;10407:25;10538:32;;;;4152:7832;;;;;;;;;;;;;;10590:33;;;;;;;;;-1:-1:-1;10590:33:1;;;10271:782;10660:35;10407:25;10660:35;;4152:7832;10660:35;;4152:7832;;10724:27;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;;;;;;;;;10767:29;;;;;;;;;;;;;;;;;;-1:-1:-1;10767:29:1;;;10271:782;10828:19;;;;4152:7832;;;;;;;;;;;;;;;10813:35;;10407:25;10813:35;;4152:7832;10813:35;;;;;;;;;;-1:-1:-1;10813:35:1;;;10271:782;4152:7832;;;10909:19;4152:7832;10909:19;4152:7832;-1:-1:-1;;;;;4152:7832:1;;;;;;;;;;;;;;;;10946:31;;;;10407:25;10946:31;-1:-1:-1;10946:31:1;;;;;;;-1:-1:-1;10946:31:1;;;10271:782;-1:-1:-1;4152:7832:1;;;-1:-1:-1;;;11000:39:1;;4152:7832;;10407:25;11000:39;;4152:7832;;;;;;;11000:39;;4152:7832;11000:39;;;;;;;-1:-1:-1;11000:39:1;;;10271:782;4152:7832;;;;;;;;:::i;:::-;;10452:596;;4152:7832;10452:596;;4152:7832;10452:596;;;4152:7832;10538:32;10452:596;;4152:7832;;10452:596;;4152:7832;10724:27;10452:596;;4152:7832;;10452:596;;4152:7832;10452:596;;4152:7832;10452:596;;;4152:7832;10452:596;;;4152:7832;10271:782;:::o;11000:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;;;11000:39;;;;4152:7832;;;11000:39;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10946:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10813:35;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;;;;;10813:35;;;;;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10767:29;;;;;;;;;;;;;:::i;:::-;;;;;10590:33;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;-1:-1:-1;4152:7832:1;;10407:25;10590:33;;;;;;;;4152:7832;;;-1:-1:-1;4152:7832:1;;;;;10407:25;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10407:25;;;;;;;;;11057:925;;;4152:7832;;:::i;:::-;-1:-1:-1;4152:7832:1;;;;-1:-1:-1;;;11357:63:1;;-1:-1:-1;;;;;4152:7832:1;;;11357:63;;;4152:7832;;;;;;;;;;;;;;;11357:63;4152:7832;;;;11357:63;;;;;;;-1:-1:-1;11357:63:1;;;11057:925;-1:-1:-1;4152:7832:1;;;;-1:-1:-1;;;11439:57:1;;-1:-1:-1;;;;;4152:7832:1;;;11357:63;11439:57;;4152:7832;;;;;;;;;11357:63;;4152:7832;;;;;;11439:57;;;;;;;-1:-1:-1;11439:57:1;;;11057:925;-1:-1:-1;11357:63:1;11524:22;;4152:7832;;11566:14;;;4152:7832;11617:31;;;4152:7832;;11677:23;;4152:7832;11716:10;;;;11743:11;;;4152:7832;;11775:15;;4152:7832;11811:15;;;4152:7832;11844:12;;;;11879:17;;;4152:7832;;;;;-1:-1:-1;;;11921:47:1;;-1:-1:-1;;;;;4152:7832:1;;;11357:63;11921:47;;4152:7832;;11844:12;;4152:7832;;;;;;;;;;11716:10;;4152:7832;;;;;11921:47;;4152:7832;11921:47;11357:63;11921:47;;;;;;;-1:-1:-1;11921:47:1;;;11057:925;4152:7832;;;;;;;;:::i;:::-;;;11357:63;11256:721;4152:7832;-1:-1:-1;;;;;4152:7832:1;;11256:721;;4152:7832;11716:10;11256:721;;4152:7832;11617:31;11256:721;;4152:7832;;11256:721;;4152:7832;11743:11;11256:721;;4152:7832;;11256:721;;4152:7832;11811:15;11256:721;;4152:7832;11844:12;11256:721;;4152:7832;11879:17;11256:721;;4152:7832;11256:721;;;4152:7832;11256:721;;;4152:7832;11256:721;;;4152:7832;11057:925;:::o;11921:47::-;;;11357:63;11921:47;;11357:63;11921:47;;;;;;11357:63;11921:47;;;:::i;:::-;;;4152:7832;;;;;;11921:47;;;;;;;-1:-1:-1;11921:47:1;;11439:57;;11357:63;11439:57;;11357:63;11439:57;;;;;;11357:63;11439:57;;;:::i;:::-;;;4152:7832;;;;;;;;:::i;:::-;11439:57;;;;;;-1:-1:-1;11439:57:1;;11357:63;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7832;;;;-1:-1:-1;4152:7832:1;;11357:63;;;;;;-1:-1:-1;11357:63:1;", + "object": "0x610160604052600436101561001357600080fd5b60003560e01c80635346cc191461035d578063c2815c0b14610221578063cbe293fa146101d55763d4fc9fc61461004957600080fd5b346101d0576020806003193601126101d05761006b610066610a83565b610ec3565b906040519080825282519261018090818385015261010160018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100d4610100998a6102208b01526102a08a0190610ad2565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152610ad2565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101a3578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101c0838f8690600196030187528d51610cbb565b9b01930193019194939290610157565b600080fd5b346101d05760403660031901126101d0576101ee610a83565b6024359060ff821682036101d05761021d91610209916119c0565b604051918291602083526020830190610cbb565b0390f35b346101d0576003196060368201126101d05761023b610a83565b6024359067ffffffffffffffff928383116101d057610160809184360301126101d057604051908101818110858211176103475760405261027e83600401610c44565b8152602483013560208201526044830135604082015260648301358481116101d0576102b09060043691860101610c74565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102df60e48401610c44565b60e08201526101048301356101008201526101248301359384116101d0576101446103339361031761021d9660043691840101610c74565b610120840152013561014082015261032d610a99565b91611d27565b604051918291602083526020830190610af7565b634e487b7160e01b600052604160045260246000fd5b346101d05760603660031901126101d057610376610a83565b6024356001600160a01b03811690036101d057610391610a99565b61039c610160610bae565b6040516103a881610bcb565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152606060c0820152600060e082015260006101008201526060610120820152600061014082015261016052600060206101600152600060406101600152600060606101600152600060806101600152600060a06101600152606060c06101600152600060e0610160015260006101006101600152600061012061016001526000610140610160015260006101608001526000610180610160015260006101a0610160015261047b82610ec3565b6040516370a0823160e01b8152602480356001600160a01b0390811660048401529194916020918691829085165afa93841561097c57600094610a4f575b50604051630dd3126d60e21b8152602480356001600160a01b0390811660048401529195916020918791829086165afa94851561097c57600095610a1b575b50825151604051636eb1769f60e11b81526001600160a01b036024803582166004840152858216908301529091169590602081806044810103818a5afa90811561097c576000916109e9575b506000821283838103128116908484810313901516176109d357845160e08101516040808301516060840151608085015160a086015160c0870151602080890151985196516370a0823160e01b8152602480356001600160a01b039081166004840152919d999c939b9482169a95999698959693959394938e928391165afa9a8b1561097c5760009b61099f575b506040519e8f906105e282610bcb565b8152602001520360408d015260608c015260808b015260a08a015260c089015260e088015261010087015261012086015261014085015260a0820151519361062985610e03565b94604051956106389087610c22565b808652601f199061064890610e03565b0160005b81811061098857505060005b60a0840151805160ff831610156106af57906106896106aa926106826024359160ff851690610e80565b5186611d27565b61069660ff831689610e80565b526106a460ff821688610e80565b50610e6f565b610658565b5050936020830151936040840151926060850151926020608087015193604460405180958193636eb1769f60e11b835260018060a01b0360243516600484015260018060a01b0316602483015260018060a01b03165afa91821561097c57600092610948575b5060c08601519060018060a01b0360243516319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061075b82610bae565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040516020815281516101c0602083015260018060a01b038151166101e0830152602081015161020083015260408101516102208301526060810151610240830152608081015161026083015260a081015161028083015261014061085461081b60c08401516101606102a0870152610340860190610ad2565b60e08401516001600160a01b03166102c08601526101008401516102e08601526101208401518582036101df1901610300870152610ad2565b910151610320830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015190601f198382030160e0840152815180825260208201916020808360051b8301019401926000915b83831061091b578680876101a08b60e08101516101008501526101008101516101208501526101208101516101408501526101408101516101608501526101608101516101808501526101808101518285015201516101c08301520390f35b9091929394602080610939600193601f198682030187528951610af7565b970193019301919392906108bc565b9091506020813d602011610974575b8161096460209383610c22565b810103126101d057519088610715565b3d9150610957565b6040513d6000823e3d90fd5b602090610993611942565b82828a0101520161064c565b909a506020813d6020116109cb575b816109bb60209383610c22565b810103126101d05751998f6105d2565b3d91506109ae565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610a13575b81610a0460209383610c22565b810103126101d0575187610544565b3d91506109f7565b9094506020813d602011610a47575b81610a3760209383610c22565b810103126101d0575193856104f8565b3d9150610a2a565b9093506020813d602011610a7b575b81610a6b60209383610c22565b810103126101d0575192846104b9565b3d9150610a5e565b600435906001600160a01b03821682036101d057565b604435906001600160a01b03821682036101d057565b60005b838110610ac25750506000910152565b8181015183820152602001610ab2565b90602091610aeb81518092818552858086019101610aaf565b601f01601f1916010190565b90610b9560018060a01b0380845116835260208401516020840152604084015160408401526060840151606084015260808401516080840152610b4960a08501516101c08060a0870152850190610ad2565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152610ad2565b9161018080820151908301526101a08091015191015290565b6101c0810190811067ffffffffffffffff82111761034757604052565b610160810190811067ffffffffffffffff82111761034757604052565b610180810190811067ffffffffffffffff82111761034757604052565b610100810190811067ffffffffffffffff82111761034757604052565b90601f8019910116810190811067ffffffffffffffff82111761034757604052565b35906001600160a01b03821682036101d057565b67ffffffffffffffff811161034757601f01601f191660200190565b81601f820112156101d057803590610c8b82610c58565b92610c996040519485610c22565b828452602083830101116101d057816000926020809301838601378301015290565b90610d4260018060a01b038084511683526020840151602084015260408401516040840152610cf96060850151610160806060870152850190610ad2565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152610ad2565b916101408091015191015290565b519060ff821682036101d057565b51906001600160a01b03821682036101d057565b519067ffffffffffffffff821682036101d057565b51906cffffffffffffffffffffffffff821682036101d057565b6020818303126101d05780519067ffffffffffffffff82116101d0570181601f820112156101d0578051610dd481610c58565b92610de26040519485610c22565b818452602082840101116101d057610e009160208085019101610aaf565b90565b67ffffffffffffffff81116103475760051b60200190565b60405190610e2882610bcb565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109d35760010190565b8051821015610e945760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109d3570290565b6080526000610160604051610ed781610be8565b604051610ee381610c05565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b03608051165afa801561097c57600060c052611907575b506040519063c55dae6360e01b825260208260048160018060a01b03608051165afa91821561097c576000926118cb575b506040519063e7dad6bd60e01b825260208260048160018060a01b03608051165afa91821561097c5760009261188f575b506040519163300e6beb60e01b835260208360048160018060a01b03608051165afa92831561097c5760009361185b575b506040516355d3f8af60e11b8152608051602090829060049082906001600160a01b03165afa90811561097c57600091611829575b506040519363189bb2f160e01b855260208560048160018060a01b03608051165afa94851561097c576000956117f5575b5060405190634f54cd2d60e11b825260208260048160018060a01b03608051165afa91821561097c576000926117c1575b50604051936349b270c560e11b855260208560048160018060a01b03608051165afa94851561097c5760009561178d575b5060405197637eb7113160e01b895260208960048160018060a01b03608051165afa98891561097c57600099611759575b50604051926318160ddd60e01b845260208460048160018060a01b03608051165afa93841561097c57600094611725575b506040519163020a17bd60e61b835260208360048160018060a01b03608051165afa92831561097c576000936116f1575b506040519363b9f0baf760e01b85526101008560048160018060a01b03608051165afa94851561097c57600095611625575b50604051634fd41dad60e11b8152600481018d9052608051602090829060249082906001600160a01b03165afa801561097c57600060a0526115ea575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b03608051165afa9b8c1561097c5760009c6115ae575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561097c57600094611591575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561097c57600060e05261155e575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561097c57600092611539575b506040516341976e0960e01b81526001600160a01b03848116600483015260805191959160209187916024918391165afa94851561097c57600095611505575b506040516101408181526370a0823160e01b90915260805181516001600160a01b039182166004909101529051602091602490829085165afa80610120521561097c57600090610120516114cd575b6113486040518061010052610c05565b60018060a01b03166101005152602061010051015260e05160406101005101526060610100510152608061010051015260018060a01b031660a061010051015260c061010051015260e06101005101526113a660ff60c05116610e03565b976113b4604051998a610c22565b60ff60c051168952601f196113cd60ff60c05116610e03565b0160005b8181106114b557505060005b60ff60c0511660ff8216101561141d57806113fd611418926080516119c0565b61140a60ff83168d610e80565b526106a460ff82168c610e80565b6113dd565b5091939597909294969861144767ffffffffffffffff6114408160a05116610eaa565b9216610eaa565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6114718c610be8565b610100518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936114c3610e1b565b92010152016113d1565b905060203d6020116114fe575b6114e78161014051610c22565b6020610140518092810103126101d0575190611338565b503d6114da565b9094506020813d602011611531575b8161152160209383610c22565b810103126101d0575193386112e9565b3d9150611514565b6115579192503d806000833e61154f8183610c22565b810190610da1565b90386112a9565b6020813d602011611589575b8161157760209383610c22565b810103126101d0575160e05238611279565b3d915061156a565b6115a79194503d806000833e61154f8183610c22565b9238611249565b909b506020813d6020116115e2575b816115ca60209383610c22565b810103126101d0576115db90610d72565b9a38611219565b3d91506115bd565b6020813d60201161161d575b8161160360209383610c22565b810103126101d05761161490610d72565b60a052386111e3565b3d91506115f6565b909450610100813d610100116116e9575b816116446101009383610c22565b810103126101d0576040519061165982610c05565b61166281610d72565b825261167060208201610d72565b602083015261168160408201610d72565b604083015261169260608201610d72565b60608301526116a360808201610d87565b60808301526116b460a08201610d87565b60a083015260c081015164ffffffffff811681036101d05760c08301526116dd9060e001610d50565b60e082015293386111a6565b3d9150611636565b9092506020813d60201161171d575b8161170d60209383610c22565b810103126101d057519138611174565b3d9150611700565b9093506020813d602011611751575b8161174160209383610c22565b810103126101d057519238611143565b3d9150611734565b9098506020813d602011611785575b8161177560209383610c22565b810103126101d057519738611112565b3d9150611768565b9094506020813d6020116117b9575b816117a960209383610c22565b810103126101d0575193386110e1565b3d915061179c565b9091506020813d6020116117ed575b816117dd60209383610c22565b810103126101d0575190386110b0565b3d91506117d0565b9094506020813d602011611821575b8161181160209383610c22565b810103126101d05751933861107f565b3d9150611804565b90506020813d602011611853575b8161184460209383610c22565b810103126101d057513861104e565b3d9150611837565b9092506020813d602011611887575b8161187760209383610c22565b810103126101d057519138611019565b3d915061186a565b9091506020813d6020116118c3575b816118ab60209383610c22565b810103126101d0576118bc90610d5e565b9038610fe8565b3d915061189e565b9091506020813d6020116118ff575b816118e760209383610c22565b810103126101d0576118f890610d5e565b9038610fb7565b3d91506118da565b6020813d60201161193a575b8161192060209383610c22565b810103126101d05761193190610d50565b60c05238610f86565b3d9150611913565b6040519061194f82610bae565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101d057565b906119c9610e1b565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315611bd057600093611c6e575b5060209283810193838551169667ffffffffffffffff9060048260808601511691848b82519384809263313ce56760e01b82525afa918215611c6357600092611c33575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa948515611ba657908c97969594939291600095611c18575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa988915611c0d57908c9160009a611bdb575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e15611bd05760009e611bb1575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d15611ba65760009d611b74575b5082519d8e611b4281610bcb565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311611b9f575b611b8b8183610c22565b81010312611b9c5750519b38611b34565b80fd5b503d611b81565b83513d6000823e3d90fd5b611bc8908493929f3d8091833e61154f8183610c22565b9d9091611b04565b85513d6000823e3d90fd5b9150988282813d8311611c06575b611bf38183610c22565b81010312611b9c57508b90519838611ac5565b503d611be9565b84513d6000823e3d90fd5b611c2c91953d8091833e61154f8183610c22565b9338611a91565b90918582813d8311611c5c575b611c4a8183610c22565b81010312611b9c575051906004611a4e565b503d611c40565b50513d6000823e3d90fd5b90928382813d8311611d20575b611c858183610c22565b81010312611b9c5750611d1460e0865192611c9f84610c05565b611ca881610d50565b8452611cb660208201610d5e565b6020850152611cc6888201610d5e565b88850152611cd660608201610d72565b6060850152611ce760808201610d72565b6080850152611cf860a08201610d72565b60a0850152611d0960c08201610d72565b60c0850152016119ac565b60e08201529138611a0a565b503d611c7b565b9190611d31611942565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561097c57600092611f0e575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561097c57600091611ed4575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d1561097c5760009d611ea0575b50604051809e611e4c82610bae565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011611ecc575b81611ebb60209383610c22565b81010312611b9c5750519b38611e3d565b3d9150611eae565b906020823d602011611f06575b81611eee60209383610c22565b81010312611b9c5750611f00906119ac565b38611dbc565b3d9150611ee1565b90916020823d602011611f3b575b81611f2960209383610c22565b81010312611b9c575051906020611d78565b3d9150611f1c56fea2646970667358221220345782715bdaa9a2ba7d9caf1ab46ea2fb0d56ce2c36fa2205346cd4c81ad5d164736f6c63430008100033", + "sourceMap": "4152:7841:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7841:1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;4152:7841:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7841:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4152:7841:1;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8385:12;;;:::i;:::-;4152:7841;;-1:-1:-1;;;8434:24:1;;4152:7841;;;-1:-1:-1;;;;;4152:7841:1;;;;8434:24;;4152:7841;;;;;;;;;;;;8434:24;;;;;;;4152:7841;8434:24;;;4152:7841;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;8494:30:1;;4152:7841;;;-1:-1:-1;;;;;4152:7841:1;;;;8494:30;;4152:7841;;;;;;;;;;;;8494:30;;;;;;;4152:7841;8494:30;;;4152:7841;-1:-1:-1;8621:18:1;;4152:7841;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;4152:7841:1;;;;;;8668:70;;4152:7841;;;;;;;;;;;;;;;;;;;8668:70;;;;;;;;;;4152:7841;8668:70;;;4152:7841;;;;;;;;;;;;;;;;;;;;;;;;8828:18;;4152:7841;8828:25;;;4152:7841;8871:27;;;4152:7841;;8917:28;;4152:7841;;8959:23;;;4152:7841;9001:28;;4152:7841;;9044:24;;4152:7841;;9092:33;;;4152:7841;;;;;-1:-1:-1;;;9148:54:1;;4152:7841;;;-1:-1:-1;;;;;4152:7841:1;;;;9148:54;;4152:7841;;;8828:25;;4152:7841;;;;;;8959:23;;4152:7841;;;;8828:25;;:18;;9092:33;4152:7841;;;;;9148:54;;;;;;;4152:7841;9148:54;;;4152:7841;;;;;;;;;;:::i;:::-;;;;8576:633;4152:7841;;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;8576:633;;4152:7841;;9311:25;;;4152:7841;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4152:7841:1;;;;:::i;:::-;;;;;;;;;9360:11;;4152:7841;9411:3;4152:7841;9311:25;;9377;4152:7841;;;;;9373:36;;;;4152:7841;9436:71;9411:3;4152:7841;9469:28;4152:7841;;;;;;9469:28;;:::i;:::-;;9436:71;;:::i;:::-;9424:83;4152:7841;;;9424:83;;:::i;:::-;;;4152:7841;;;9424:83;;:::i;:::-;;9411:3;:::i;:::-;9360:11;;9373:36;;;;4152:7841;9619:26;;4152:7841;9680:32;4152:7841;9680:32;;4152:7841;9747:32;4152:7841;9747:32;;4152:7841;9800:18;4152:7841;;9800:18;;4152:7841;;;;;;;;;;;;9845:32;;4152:7841;;;;;;;;;9845:32;;4152:7841;;;;;;;;;;;;;;;;;9845:32;;;;;;;4152:7841;9845:32;;;9355:159;9930:16;4152:7841;9930:16;;4152:7841;;;;;;;;;;9982:15;10020:20;4152:7841;10020:20;;4152:7841;10072:29;4152:7841;10072:29;;4152:7841;10124:20;4152:7841;10124:20;;4152:7841;10176:29;4152:7841;;10176:29;;4152:7841;10235:27;;4152:7841;;;;;;;;;;;:::i;:::-;;;9533:738;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;9533:738;;4152:7841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;4152:7841:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4152:7841:1;;;;;;:::i;:::-;;;;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9533:738;;;4152:7841;9533:738;4152:7841;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;;9533:738;;4152:7841;;;;;9533:738;4152:7841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9845:32;;;;4152:7841;9845:32;;4152:7841;9845:32;;;;;;4152:7841;9845:32;;;:::i;:::-;;;4152:7841;;;;;9845:32;;;;;;;-1:-1:-1;9845:32:1;;;4152:7841;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9148:54;;;;4152:7841;9148:54;;4152:7841;9148:54;;;;;;4152:7841;9148:54;;;:::i;:::-;;;4152:7841;;;;;9148:54;;;;;;;-1:-1:-1;9148:54:1;;4152:7841;;;;;;;;;;;;8668:70;;;4152:7841;8668:70;;4152:7841;8668:70;;;;;;4152:7841;8668:70;;;:::i;:::-;;;4152:7841;;;;;8668:70;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;;4152:7841;8494:30;;4152:7841;8494:30;;;;;;4152:7841;8494:30;;;:::i;:::-;;;4152:7841;;;;;8494:30;;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;;4152:7841;8434:24;;4152:7841;8434:24;;;;;;4152:7841;8434:24;;;:::i;:::-;;;4152:7841;;;;;8434:24;;;;;;;-1:-1:-1;8434:24:1;;4152:7841;;;;-1:-1:-1;;;;;4152:7841:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;4152:7841:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7841:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;4152:7841:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7841:1;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;4152:7841:1;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4152:7841:1;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7841:1;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7841:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18;;;;;;;;;;;;;;;;;:::o;6179:2007::-;;;-1:-1:-1;4152:7841:1;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6179:2007;4152:7841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007;4152:7841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6270:17;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6270:17;;;;;;-1:-1:-1;4152:7841:1;6270:17;;;6179:2007;4152:7841;;;;;;;6313:17;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6313:17;;;;;;;-1:-1:-1;6313:17:1;;;6179:2007;4152:7841;;;;;;;6365:26;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6365:26;;;;;;;-1:-1:-1;6365:26:1;;;6179:2007;4152:7841;;;;;;;6414:21;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6414:21;;;;;;;-1:-1:-1;6414:21:1;;;6179:2007;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;6467:26:1;;6179:2007;6270:15;4152:7841;;;;6270:17;;4152:7841;;-1:-1:-1;;;;;4152:7841:1;6467:26;;;;;;;-1:-1:-1;6467:26:1;;;6179:2007;4152:7841;;;;;;;6530:31;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6530:31;;;;;;;-1:-1:-1;6530:31:1;;;6179:2007;4152:7841;;;;;;;6598:31;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6598:31;;;;;;;-1:-1:-1;6598:31:1;;;6179:2007;4152:7841;;;;;;;6660:25;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6660:25;;;;;;;-1:-1:-1;6660:25:1;;;6179:2007;4152:7841;;;;;;;6710:22;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6710:22;;;;;;;-1:-1:-1;6710:22:1;;;6179:2007;4152:7841;;;;;;;6757:19;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6757:19;;;;;;;-1:-1:-1;6757:19:1;;;6179:2007;4152:7841;;;;;;;6801:19;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6801:19;;;;;;;-1:-1:-1;6801:19:1;;;6179:2007;4152:7841;;;;;;;6865:19;;4152:7841;;6270:17;4152:7841;;;;;;6179:2007;6270:15;4152:7841;6865:19;;;;;;;-1:-1:-1;6865:19:1;;;6179:2007;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;6917:32:1;;6270:17;6917:32;;4152:7841;;;6179:2007;6270:15;4152:7841;;;;;;;;-1:-1:-1;;;;;4152:7841:1;6917:32;;;;;;-1:-1:-1;4152:7841:1;6917:32;;;6179:2007;4152:7841;;;;;;;6982:32;;6270:17;6982:32;;4152:7841;;;;;;;;;;6179:2007;6270:15;4152:7841;6982:32;;;;;;;-1:-1:-1;6982:32:1;;;6179:2007;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;7104:25:1;;4152:7841;-1:-1:-1;4152:7841:1;6270:17;4152:7841;-1:-1:-1;;;;;4152:7841:1;;7104:25;;;;;;;-1:-1:-1;7104:25:1;;;6179:2007;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;7147:27:1;;4152:7841;;6270:17;4152:7841;-1:-1:-1;;;;;4152:7841:1;;7147:27;;;;;;-1:-1:-1;4152:7841:1;7147:27;;;6179:2007;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;7216:23:1;;4152:7841;-1:-1:-1;4152:7841:1;6270:17;4152:7841;-1:-1:-1;;;;;4152:7841:1;;7216:23;;;;;;;-1:-1:-1;7216:23:1;;;6179:2007;-1:-1:-1;4152:7841:1;;-1:-1:-1;;;7291:34:1;;-1:-1:-1;;;;;4152:7841:1;;;6270:17;7291:34;;4152:7841;6179:2007;6270:15;4152:7841;;;;;;;;;;;;7291:34;;;;;;;-1:-1:-1;7291:34:1;;;6179:2007;-1:-1:-1;4152:7841:1;;;7349:42;;;-1:-1:-1;;;7349:42:1;;;6179:2007;6270:15;7349:42;;-1:-1:-1;;;;;4152:7841:1;;;6270:17;7349:42;;;4152:7841;7349:42;;4152:7841;;;;7349:42;;4152:7841;;7349:42;;;4152:7841;7349:42;;;;-1:-1:-1;7349:42:1;4152:7841;7349:42;;;6179:2007;4152:7841;;;;;;;:::i;:::-;;;;;;;;;;;;7050:348;;4152:7841;;;;;7050:348;;4152:7841;;;7050:348;;4152:7841;6179:2007;4152:7841;7050:348;;4152:7841;;;;;;;;;7050:348;;4152:7841;;;7050:348;;4152:7841;;;7050:348;;4152:7841;;;;6253:34;4152:7841;;:::i;:::-;;;;;;;;:::i;:::-;;;6253:34;4152:7841;;;;;;;;6253:34;4152:7841;;:::i;:::-;;-1:-1:-1;4152:7841:1;;;;;;7482:11;;-1:-1:-1;7510:3:1;4152:7841;;6253:34;4152:7841;;;;7495:13;;;;7535:24;;7510:3;7535:24;6179:2007;7535:24;;:::i;:::-;7523:36;4152:7841;;;7523:36;;:::i;:::-;;;4152:7841;;;7523:36;;:::i;7510:3::-;7482:11;;7495:13;;;;;;;;;;;7900:38;4152:7841;7809:38;6890:59;4152:7841;6890:59;4152:7841;7809:38;:::i;:::-;4152:7841;;7900:38;:::i;:::-;8004:27;4152:7841;6179:2007;8004:27;4152:7841;8004:27;;4218:18;4152:7841;8097:27;;4218:18;4152:7841;;;;;;;;:::i;:::-;;;;;;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;6179:2007;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;;7585:596;;4152:7841;6179:2007;:::o;4152:7841::-;;;;;;;;:::i;:::-;;;;;;;;7349:42;;;4152:7841;7349:42;4152:7841;7349:42;;;;;;4152:7841;7349:42;;:::i;:::-;4152:7841;;;7349:42;;;;4152:7841;;;;;7349:42;;;;;;;;7291:34;;;;4152:7841;7291:34;;4152:7841;7291:34;;;;;;4152:7841;7291:34;;;:::i;:::-;;;4152:7841;;;;;7291:34;;;;;;;-1:-1:-1;7291:34:1;;7216:23;;;;;;;-1:-1:-1;7216:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7147:27;4152:7841;7147:27;;4152:7841;7147:27;;;;;;4152:7841;7147:27;;;:::i;:::-;;;4152:7841;;;;;;7147:27;;;;;;;-1:-1:-1;7147:27:1;;7104:25;;;;;;;-1:-1:-1;7104:25:1;;;;;;:::i;:::-;;;;;6982:32;;;;4152:7841;6982:32;;4152:7841;6982:32;;;;;;4152:7841;6982:32;;;:::i;:::-;;;4152:7841;;;;;;;:::i;:::-;6982:32;;;;;;;-1:-1:-1;6982:32:1;;6917;4152:7841;6917:32;;4152:7841;6917:32;;;;;;4152:7841;6917:32;;;:::i;:::-;;;4152:7841;;;;;;;:::i;:::-;;6917:32;;;;;;;-1:-1:-1;6917:32:1;;6865:19;;;;4152:7841;6865:19;;4152:7841;6865:19;;;;;;4152:7841;6865:19;;;:::i;:::-;;;4152:7841;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;6179:2007;4152:7841;;;:::i;:::-;6179:2007;4152:7841;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6865:19;;;;;;;-1:-1:-1;6865:19:1;;6801;;;;4152:7841;6801:19;;4152:7841;6801:19;;;;;;4152:7841;6801:19;;;:::i;:::-;;;4152:7841;;;;;6801:19;;;;;;;-1:-1:-1;6801:19:1;;6757;;;;4152:7841;6757:19;;4152:7841;6757:19;;;;;;4152:7841;6757:19;;;:::i;:::-;;;4152:7841;;;;;6757:19;;;;;;;-1:-1:-1;6757:19:1;;6710:22;;;;4152:7841;6710:22;;4152:7841;6710:22;;;;;;4152:7841;6710:22;;;:::i;:::-;;;4152:7841;;;;;6710:22;;;;;;;-1:-1:-1;6710:22:1;;6660:25;;;;4152:7841;6660:25;;4152:7841;6660:25;;;;;;4152:7841;6660:25;;;:::i;:::-;;;4152:7841;;;;;6660:25;;;;;;;-1:-1:-1;6660:25:1;;6598:31;;;;4152:7841;6598:31;;4152:7841;6598:31;;;;;;4152:7841;6598:31;;;:::i;:::-;;;4152:7841;;;;;6598:31;;;;;;;-1:-1:-1;6598:31:1;;6530;;;;4152:7841;6530:31;;4152:7841;6530:31;;;;;;4152:7841;6530:31;;;:::i;:::-;;;4152:7841;;;;;6530:31;;;;;;;-1:-1:-1;6530:31:1;;6467:26;;;4152:7841;6467:26;;4152:7841;6467:26;;;;;;4152:7841;6467:26;;;:::i;:::-;;;4152:7841;;;;;6467:26;;;;;;-1:-1:-1;6467:26:1;;6414:21;;;;4152:7841;6414:21;;4152:7841;6414:21;;;;;;4152:7841;6414:21;;;:::i;:::-;;;4152:7841;;;;;6414:21;;;;;;;-1:-1:-1;6414:21:1;;6365:26;;;;4152:7841;6365:26;;4152:7841;6365:26;;;;;;4152:7841;6365:26;;;:::i;:::-;;;4152:7841;;;;;;;:::i;:::-;6365:26;;;;;;;-1:-1:-1;6365:26:1;;6313:17;;;;4152:7841;6313:17;;4152:7841;6313:17;;;;;;4152:7841;6313:17;;;:::i;:::-;;;4152:7841;;;;;;;:::i;:::-;6313:17;;;;;;;-1:-1:-1;6313:17:1;;6270;4152:7841;6270:17;;4152:7841;6270:17;;;;;;4152:7841;6270:17;;;:::i;:::-;;;4152:7841;;;;;;;:::i;:::-;;6270:17;;;;;;;-1:-1:-1;6270:17:1;;4152:7841;;;;;;;:::i;:::-;;;-1:-1:-1;4152:7841:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;4152:7841:1;;;;;;:::o;10280:782::-;;4152:7841;;:::i;:::-;-1:-1:-1;4152:7841:1;;;-1:-1:-1;;;10416:25:1;;4152:7841;;;;10416:25;;;4152:7841;;-1:-1:-1;;;;;4152:7841:1;;;;;10416:25;;4152:7841;;;;10416:25;;;;;;;-1:-1:-1;10416:25:1;;;10280:782;4152:7841;;10504:15;;;;4152:7841;;;;;;;10547:32;10416:25;10547:32;;;;4152:7841;;;;;;;;;;;;;;10599:33;;;;;;;;;-1:-1:-1;10599:33:1;;;10280:782;10669:35;10416:25;10669:35;;4152:7841;10669:35;;4152:7841;;10733:27;;;;4152:7841;;;-1:-1:-1;4152:7841:1;;;;;;;;;;;;;10776:29;;;;;;;;;;;;;;;;;;-1:-1:-1;10776:29:1;;;10280:782;10837:19;;;;4152:7841;;;;;;;;;;;;;;;10822:35;;10416:25;10822:35;;4152:7841;10822:35;;;;;;;;;;-1:-1:-1;10822:35:1;;;10280:782;4152:7841;;;10918:19;4152:7841;10918:19;4152:7841;-1:-1:-1;;;;;4152:7841:1;;;;;;;;;;;;;;;;10955:31;;;;10416:25;10955:31;-1:-1:-1;10955:31:1;;;;;;;-1:-1:-1;10955:31:1;;;10280:782;-1:-1:-1;4152:7841:1;;;-1:-1:-1;;;11009:39:1;;4152:7841;;10416:25;11009:39;;4152:7841;;;;;;;11009:39;;4152:7841;11009:39;;;;;;;-1:-1:-1;11009:39:1;;;10280:782;4152:7841;;;;;;;;:::i;:::-;;10461:596;;4152:7841;10461:596;;4152:7841;10461:596;;;4152:7841;10547:32;10461:596;;4152:7841;;10461:596;;4152:7841;10733:27;10461:596;;4152:7841;;10461:596;;4152:7841;10461:596;;4152:7841;10461:596;;;4152:7841;10461:596;;;4152:7841;10280:782;:::o;11009:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7841;;;;;;11009:39;;;;4152:7841;;;11009:39;;;;;;4152:7841;;;-1:-1:-1;4152:7841:1;;;;;10955:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;4152:7841;;;-1:-1:-1;4152:7841:1;;;;;10822:35;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7841;;;;;;;;10822:35;;;;;;;;;;4152:7841;;;-1:-1:-1;4152:7841:1;;;;;10776:29;;;;;;;;;;;;;:::i;:::-;;;;;10599:33;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7841;;;;-1:-1:-1;4152:7841:1;;10416:25;10599:33;;;;;;;;4152:7841;;;-1:-1:-1;4152:7841:1;;;;;10416:25;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7841;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10416:25;;;;;;;;;11066:925;;;4152:7841;;:::i;:::-;-1:-1:-1;4152:7841:1;;;;-1:-1:-1;;;11366:63:1;;-1:-1:-1;;;;;4152:7841:1;;;11366:63;;;4152:7841;;;;;;;;;;;;;;;11366:63;4152:7841;;;;11366:63;;;;;;;-1:-1:-1;11366:63:1;;;11066:925;-1:-1:-1;4152:7841:1;;;;-1:-1:-1;;;11448:57:1;;-1:-1:-1;;;;;4152:7841:1;;;11366:63;11448:57;;4152:7841;;;;;;;;;11366:63;;4152:7841;;;;;;11448:57;;;;;;;-1:-1:-1;11448:57:1;;;11066:925;-1:-1:-1;11366:63:1;11533:22;;4152:7841;;11575:14;;;4152:7841;11626:31;;;4152:7841;;11686:23;;4152:7841;11725:10;;;;11752:11;;;4152:7841;;11784:15;;4152:7841;11820:15;;;4152:7841;11853:12;;;;11888:17;;;4152:7841;;;;;-1:-1:-1;;;11930:47:1;;-1:-1:-1;;;;;4152:7841:1;;;11366:63;11930:47;;4152:7841;;11853:12;;4152:7841;;;;;;;;;;11725:10;;4152:7841;;;;;11930:47;;4152:7841;11930:47;11366:63;11930:47;;;;;;;-1:-1:-1;11930:47:1;;;11066:925;4152:7841;;;;;;;;:::i;:::-;;;11366:63;11265:721;4152:7841;-1:-1:-1;;;;;4152:7841:1;;11265:721;;4152:7841;11725:10;11265:721;;4152:7841;11626:31;11265:721;;4152:7841;;11265:721;;4152:7841;11752:11;11265:721;;4152:7841;;11265:721;;4152:7841;11820:15;11265:721;;4152:7841;11853:12;11265:721;;4152:7841;11888:17;11265:721;;4152:7841;11265:721;;;4152:7841;11265:721;;;4152:7841;11265:721;;;4152:7841;11066:925;:::o;11930:47::-;;;11366:63;11930:47;;11366:63;11930:47;;;;;;11366:63;11930:47;;;:::i;:::-;;;4152:7841;;;;;;11930:47;;;;;;;-1:-1:-1;11930:47:1;;11448:57;;11366:63;11448:57;;11366:63;11448:57;;;;;;11366:63;11448:57;;;:::i;:::-;;;4152:7841;;;;;;;;:::i;:::-;11448:57;;;;;;-1:-1:-1;11448:57:1;;11366:63;;;;;;;;;;;;;;;;;:::i;:::-;;;4152:7841;;;;-1:-1:-1;4152:7841:1;;11366:63;;;;;;-1:-1:-1;11366:63:1;", "linkReferences": {} }, "methodIdentifiers": { @@ -666,7 +666,7 @@ "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"CometQuery\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b\",\"dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CometQuery.sol\":\"CometQuery\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc\",\"dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1136,9 +1136,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -1352,10 +1352,10 @@ }, "sources": { "Sleuth/CometQuery.sol": { - "keccak256": "0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980", + "keccak256": "0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c", "urls": [ - "bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b", - "dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ" + "bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc", + "dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36" ], "license": "UNLICENSED" } @@ -1364,20 +1364,20 @@ }, "ast": { "absolutePath": "Sleuth/CometQuery.sol", - "id": 1273, + "id": 1279, "exportedSymbols": { "Comet": [ 598 ], "CometQuery": [ - 1272 + 1278 ], "ERC20": [ 630 ] }, "nodeType": "SourceUnit", - "src": "39:11946:1", + "src": "39:11955:1", "nodes": [ { "id": 289, @@ -5000,7 +5000,7 @@ ], "name": "Comet", "nameLocation": "75:5:1", - "scope": 1273, + "scope": 1279, "usedErrors": [] }, { @@ -5381,13 +5381,13 @@ ], "name": "ERC20", "nameLocation": "3820:5:1", - "scope": 1273, + "scope": 1279, "usedErrors": [] }, { - "id": 1272, + "id": 1278, "nodeType": "ContractDefinition", - "src": "4152:7832:1", + "src": "4152:7841:1", "nodes": [ { "id": 639, @@ -5397,7 +5397,7 @@ "mutability": "constant", "name": "SECONDS_PER_YEAR", "nameLocation": "4199:16:1", - "scope": 1272, + "scope": 1278, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5761,13 +5761,13 @@ ], "name": "BaseAsset", "nameLocation": "4248:9:1", - "scope": 1272, + "scope": 1278, "visibility": "public" }, { "id": 679, "nodeType": "StructDefinition", - "src": "4429:262:1", + "src": "4429:261:1", "canonicalName": "CometQuery.BaseAssetWithAccountState", "members": [ { @@ -5830,24 +5830,24 @@ "id": 662, "mutability": "mutable", "name": "balance", - "nameLocation": "4516:7:1", + "nameLocation": "4515:7:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4511:12:1", + "src": "4511:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, "typeName": { "id": 661, - "name": "uint", + "name": "int", "nodeType": "ElementaryTypeName", - "src": "4511:4:1", + "src": "4511:3:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "visibility": "internal" @@ -5857,10 +5857,10 @@ "id": 664, "mutability": "mutable", "name": "balanceOfComet", - "nameLocation": "4534:14:1", + "nameLocation": "4533:14:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4529:19:1", + "src": "4528:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5871,7 +5871,7 @@ "id": 663, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4529:4:1", + "src": "4528:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5884,10 +5884,10 @@ "id": 666, "mutability": "mutable", "name": "decimals", - "nameLocation": "4559:8:1", + "nameLocation": "4558:8:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4554:13:1", + "src": "4553:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5898,7 +5898,7 @@ "id": 665, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4554:4:1", + "src": "4553:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5911,10 +5911,10 @@ "id": 668, "mutability": "mutable", "name": "minBorrow", - "nameLocation": "4578:9:1", + "nameLocation": "4577:9:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4573:14:1", + "src": "4572:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5925,7 +5925,7 @@ "id": 667, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4573:4:1", + "src": "4572:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5938,10 +5938,10 @@ "id": 670, "mutability": "mutable", "name": "name", - "nameLocation": "4600:4:1", + "nameLocation": "4599:4:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4593:11:1", + "src": "4592:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5952,7 +5952,7 @@ "id": 669, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4593:6:1", + "src": "4592:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5965,10 +5965,10 @@ "id": 672, "mutability": "mutable", "name": "priceFeed", - "nameLocation": "4618:9:1", + "nameLocation": "4617:9:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4610:17:1", + "src": "4609:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5979,7 +5979,7 @@ "id": 671, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4610:7:1", + "src": "4609:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5993,10 +5993,10 @@ "id": 674, "mutability": "mutable", "name": "price", - "nameLocation": "4638:5:1", + "nameLocation": "4637:5:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4633:10:1", + "src": "4632:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6007,7 +6007,7 @@ "id": 673, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4633:4:1", + "src": "4632:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6020,10 +6020,10 @@ "id": 676, "mutability": "mutable", "name": "symbol", - "nameLocation": "4656:6:1", + "nameLocation": "4655:6:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4649:13:1", + "src": "4648:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6034,7 +6034,7 @@ "id": 675, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4649:6:1", + "src": "4648:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6047,10 +6047,10 @@ "id": 678, "mutability": "mutable", "name": "walletBalance", - "nameLocation": "4673:13:1", + "nameLocation": "4672:13:1", "nodeType": "VariableDeclaration", "scope": 679, - "src": "4668:18:1", + "src": "4667:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6061,7 +6061,7 @@ "id": 677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4668:4:1", + "src": "4667:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6072,13 +6072,13 @@ ], "name": "BaseAssetWithAccountState", "nameLocation": "4436:25:1", - "scope": 1272, + "scope": 1278, "visibility": "public" }, { "id": 702, "nodeType": "StructDefinition", - "src": "4695:284:1", + "src": "4694:284:1", "canonicalName": "CometQuery.CollateralAsset", "members": [ { @@ -6086,10 +6086,10 @@ "id": 681, "mutability": "mutable", "name": "collateralAsset", - "nameLocation": "4732:15:1", + "nameLocation": "4731:15:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4724:23:1", + "src": "4723:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6100,7 +6100,7 @@ "id": 680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4724:7:1", + "src": "4723:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6114,10 +6114,10 @@ "id": 683, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "4758:16:1", + "nameLocation": "4757:16:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4753:21:1", + "src": "4752:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6128,7 +6128,7 @@ "id": 682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4753:4:1", + "src": "4752:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6141,10 +6141,10 @@ "id": 685, "mutability": "mutable", "name": "decimals", - "nameLocation": "4785:8:1", + "nameLocation": "4784:8:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4780:13:1", + "src": "4779:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6155,7 +6155,7 @@ "id": 684, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4780:4:1", + "src": "4779:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6168,10 +6168,10 @@ "id": 687, "mutability": "mutable", "name": "name", - "nameLocation": "4806:4:1", + "nameLocation": "4805:4:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4799:11:1", + "src": "4798:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6182,7 +6182,7 @@ "id": 686, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4799:6:1", + "src": "4798:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6195,10 +6195,10 @@ "id": 689, "mutability": "mutable", "name": "liquidateCollateralFactor", - "nameLocation": "4821:25:1", + "nameLocation": "4820:25:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4816:30:1", + "src": "4815:30:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6209,7 +6209,7 @@ "id": 688, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4816:4:1", + "src": "4815:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6222,10 +6222,10 @@ "id": 691, "mutability": "mutable", "name": "liquidationFactor", - "nameLocation": "4857:17:1", + "nameLocation": "4856:17:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4852:22:1", + "src": "4851:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6236,7 +6236,7 @@ "id": 690, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4852:4:1", + "src": "4851:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6249,10 +6249,10 @@ "id": 693, "mutability": "mutable", "name": "price", - "nameLocation": "4885:5:1", + "nameLocation": "4884:5:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4880:10:1", + "src": "4879:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6263,7 +6263,7 @@ "id": 692, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4880:4:1", + "src": "4879:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6276,10 +6276,10 @@ "id": 695, "mutability": "mutable", "name": "priceFeed", - "nameLocation": "4904:9:1", + "nameLocation": "4903:9:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4896:17:1", + "src": "4895:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6290,7 +6290,7 @@ "id": 694, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4896:7:1", + "src": "4895:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6304,10 +6304,10 @@ "id": 697, "mutability": "mutable", "name": "supplyCap", - "nameLocation": "4924:9:1", + "nameLocation": "4923:9:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4919:14:1", + "src": "4918:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6318,7 +6318,7 @@ "id": 696, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4919:4:1", + "src": "4918:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6331,10 +6331,10 @@ "id": 699, "mutability": "mutable", "name": "symbol", - "nameLocation": "4946:6:1", + "nameLocation": "4945:6:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4939:13:1", + "src": "4938:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6345,7 +6345,7 @@ "id": 698, "name": "string", "nodeType": "ElementaryTypeName", - "src": "4939:6:1", + "src": "4938:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6358,10 +6358,10 @@ "id": 701, "mutability": "mutable", "name": "totalSupply", - "nameLocation": "4963:11:1", + "nameLocation": "4962:11:1", "nodeType": "VariableDeclaration", "scope": 702, - "src": "4958:16:1", + "src": "4957:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6372,7 +6372,7 @@ "id": 700, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4958:4:1", + "src": "4957:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6382,14 +6382,14 @@ } ], "name": "CollateralAsset", - "nameLocation": "4702:15:1", - "scope": 1272, + "nameLocation": "4701:15:1", + "scope": 1278, "visibility": "public" }, { "id": 731, "nodeType": "StructDefinition", - "src": "4983:362:1", + "src": "4982:362:1", "canonicalName": "CometQuery.CollateralAssetWithAccountState", "members": [ { @@ -6397,10 +6397,10 @@ "id": 704, "mutability": "mutable", "name": "collateralAsset", - "nameLocation": "5036:15:1", + "nameLocation": "5035:15:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5028:23:1", + "src": "5027:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6411,7 +6411,7 @@ "id": 703, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5028:7:1", + "src": "5027:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6425,10 +6425,10 @@ "id": 706, "mutability": "mutable", "name": "allowance", - "nameLocation": "5062:9:1", + "nameLocation": "5061:9:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5057:14:1", + "src": "5056:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6439,7 +6439,7 @@ "id": 705, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5057:4:1", + "src": "5056:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6452,10 +6452,10 @@ "id": 708, "mutability": "mutable", "name": "balance", - "nameLocation": "5082:7:1", + "nameLocation": "5081:7:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5077:12:1", + "src": "5076:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6466,7 +6466,7 @@ "id": 707, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5077:4:1", + "src": "5076:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6479,10 +6479,10 @@ "id": 710, "mutability": "mutable", "name": "collateralFactor", - "nameLocation": "5100:16:1", + "nameLocation": "5099:16:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5095:21:1", + "src": "5094:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6493,7 +6493,7 @@ "id": 709, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5095:4:1", + "src": "5094:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6506,10 +6506,10 @@ "id": 712, "mutability": "mutable", "name": "decimals", - "nameLocation": "5127:8:1", + "nameLocation": "5126:8:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5122:13:1", + "src": "5121:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6520,7 +6520,7 @@ "id": 711, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5122:4:1", + "src": "5121:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6533,10 +6533,10 @@ "id": 714, "mutability": "mutable", "name": "name", - "nameLocation": "5148:4:1", + "nameLocation": "5147:4:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5141:11:1", + "src": "5140:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6547,7 +6547,7 @@ "id": 713, "name": "string", "nodeType": "ElementaryTypeName", - "src": "5141:6:1", + "src": "5140:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6560,10 +6560,10 @@ "id": 716, "mutability": "mutable", "name": "liquidateCollateralFactor", - "nameLocation": "5163:25:1", + "nameLocation": "5162:25:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5158:30:1", + "src": "5157:30:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6574,7 +6574,7 @@ "id": 715, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5158:4:1", + "src": "5157:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6587,10 +6587,10 @@ "id": 718, "mutability": "mutable", "name": "liquidationFactor", - "nameLocation": "5199:17:1", + "nameLocation": "5198:17:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5194:22:1", + "src": "5193:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6601,7 +6601,7 @@ "id": 717, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5194:4:1", + "src": "5193:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6614,10 +6614,10 @@ "id": 720, "mutability": "mutable", "name": "price", - "nameLocation": "5227:5:1", + "nameLocation": "5226:5:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5222:10:1", + "src": "5221:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6628,7 +6628,7 @@ "id": 719, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5222:4:1", + "src": "5221:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6641,10 +6641,10 @@ "id": 722, "mutability": "mutable", "name": "priceFeed", - "nameLocation": "5246:9:1", + "nameLocation": "5245:9:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5238:17:1", + "src": "5237:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6655,7 +6655,7 @@ "id": 721, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5238:7:1", + "src": "5237:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6669,10 +6669,10 @@ "id": 724, "mutability": "mutable", "name": "supplyCap", - "nameLocation": "5266:9:1", + "nameLocation": "5265:9:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5261:14:1", + "src": "5260:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6683,7 +6683,7 @@ "id": 723, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5261:4:1", + "src": "5260:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6696,10 +6696,10 @@ "id": 726, "mutability": "mutable", "name": "symbol", - "nameLocation": "5288:6:1", + "nameLocation": "5287:6:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5281:13:1", + "src": "5280:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6710,7 +6710,7 @@ "id": 725, "name": "string", "nodeType": "ElementaryTypeName", - "src": "5281:6:1", + "src": "5280:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -6723,10 +6723,10 @@ "id": 728, "mutability": "mutable", "name": "totalSupply", - "nameLocation": "5305:11:1", + "nameLocation": "5304:11:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5300:16:1", + "src": "5299:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6737,7 +6737,7 @@ "id": 727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5300:4:1", + "src": "5299:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6750,10 +6750,10 @@ "id": 730, "mutability": "mutable", "name": "walletBalance", - "nameLocation": "5327:13:1", + "nameLocation": "5326:13:1", "nodeType": "VariableDeclaration", "scope": 731, - "src": "5322:18:1", + "src": "5321:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6764,7 +6764,7 @@ "id": 729, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5322:4:1", + "src": "5321:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6774,14 +6774,14 @@ } ], "name": "CollateralAssetWithAccountState", - "nameLocation": "4990:31:1", - "scope": 1272, + "nameLocation": "4989:31:1", + "scope": 1278, "visibility": "public" }, { "id": 759, "nodeType": "StructDefinition", - "src": "5349:357:1", + "src": "5348:357:1", "canonicalName": "CometQuery.CometState", "members": [ { @@ -6789,10 +6789,10 @@ "id": 734, "mutability": "mutable", "name": "baseAsset", - "nameLocation": "5383:9:1", + "nameLocation": "5382:9:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5373:19:1", + "src": "5372:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6806,14 +6806,14 @@ "id": 732, "name": "BaseAsset", "nameLocations": [ - "5373:9:1" + "5372:9:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 656, - "src": "5373:9:1" + "src": "5372:9:1" }, "referencedDeclaration": 656, - "src": "5373:9:1", + "src": "5372:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", "typeString": "struct CometQuery.BaseAsset" @@ -6826,10 +6826,10 @@ "id": 736, "mutability": "mutable", "name": "baseMinForRewards", - "nameLocation": "5403:17:1", + "nameLocation": "5402:17:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5398:22:1", + "src": "5397:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6840,7 +6840,7 @@ "id": 735, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5398:4:1", + "src": "5397:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6853,10 +6853,10 @@ "id": 738, "mutability": "mutable", "name": "baseTrackingBorrowSpeed", - "nameLocation": "5431:23:1", + "nameLocation": "5430:23:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5426:28:1", + "src": "5425:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6867,7 +6867,7 @@ "id": 737, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5426:4:1", + "src": "5425:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6880,10 +6880,10 @@ "id": 740, "mutability": "mutable", "name": "baseTrackingSupplySpeed", - "nameLocation": "5465:23:1", + "nameLocation": "5464:23:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5460:28:1", + "src": "5459:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6894,7 +6894,7 @@ "id": 739, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5460:4:1", + "src": "5459:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6907,10 +6907,10 @@ "id": 742, "mutability": "mutable", "name": "borrowAPR", - "nameLocation": "5499:9:1", + "nameLocation": "5498:9:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5494:14:1", + "src": "5493:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6921,7 +6921,7 @@ "id": 741, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5494:4:1", + "src": "5493:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6934,10 +6934,10 @@ "id": 746, "mutability": "mutable", "name": "collateralAssets", - "nameLocation": "5532:16:1", + "nameLocation": "5531:16:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5514:34:1", + "src": "5513:34:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6952,14 +6952,14 @@ "id": 743, "name": "CollateralAsset", "nameLocations": [ - "5514:15:1" + "5513:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "5514:15:1" + "src": "5513:15:1" }, "referencedDeclaration": 702, - "src": "5514:15:1", + "src": "5513:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -6967,7 +6967,7 @@ }, "id": 745, "nodeType": "ArrayTypeName", - "src": "5514:17:1", + "src": "5513:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAsset[]" @@ -6980,10 +6980,10 @@ "id": 748, "mutability": "mutable", "name": "earnAPR", - "nameLocation": "5559:7:1", + "nameLocation": "5558:7:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5554:12:1", + "src": "5553:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6994,7 +6994,7 @@ "id": 747, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5554:4:1", + "src": "5553:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7007,10 +7007,10 @@ "id": 750, "mutability": "mutable", "name": "totalBorrow", - "nameLocation": "5577:11:1", + "nameLocation": "5576:11:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5572:16:1", + "src": "5571:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7021,7 +7021,7 @@ "id": 749, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5572:4:1", + "src": "5571:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7034,10 +7034,10 @@ "id": 752, "mutability": "mutable", "name": "totalBorrowPrincipal", - "nameLocation": "5599:20:1", + "nameLocation": "5598:20:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5594:25:1", + "src": "5593:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7048,7 +7048,7 @@ "id": 751, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5594:4:1", + "src": "5593:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7061,10 +7061,10 @@ "id": 754, "mutability": "mutable", "name": "totalSupply", - "nameLocation": "5630:11:1", + "nameLocation": "5629:11:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5625:16:1", + "src": "5624:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7075,7 +7075,7 @@ "id": 753, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5625:4:1", + "src": "5624:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7088,10 +7088,10 @@ "id": 756, "mutability": "mutable", "name": "totalSupplyPrincipal", - "nameLocation": "5652:20:1", + "nameLocation": "5651:20:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5647:25:1", + "src": "5646:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7102,7 +7102,7 @@ "id": 755, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5647:4:1", + "src": "5646:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7115,10 +7115,10 @@ "id": 758, "mutability": "mutable", "name": "trackingIndexScale", - "nameLocation": "5683:18:1", + "nameLocation": "5682:18:1", "nodeType": "VariableDeclaration", "scope": 759, - "src": "5678:23:1", + "src": "5677:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7129,7 +7129,7 @@ "id": 757, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5678:4:1", + "src": "5677:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7139,14 +7139,14 @@ } ], "name": "CometState", - "nameLocation": "5356:10:1", - "scope": 1272, + "nameLocation": "5355:10:1", + "scope": 1278, "visibility": "public" }, { "id": 791, "nodeType": "StructDefinition", - "src": "5710:466:1", + "src": "5709:466:1", "canonicalName": "CometQuery.CometStateWithAccountState", "members": [ { @@ -7154,10 +7154,10 @@ "id": 762, "mutability": "mutable", "name": "baseAsset", - "nameLocation": "5776:9:1", + "nameLocation": "5775:9:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5750:35:1", + "src": "5749:35:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7171,14 +7171,14 @@ "id": 760, "name": "BaseAssetWithAccountState", "nameLocations": [ - "5750:25:1" + "5749:25:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 679, - "src": "5750:25:1" + "src": "5749:25:1" }, "referencedDeclaration": 679, - "src": "5750:25:1", + "src": "5749:25:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", "typeString": "struct CometQuery.BaseAssetWithAccountState" @@ -7191,10 +7191,10 @@ "id": 764, "mutability": "mutable", "name": "baseMinForRewards", - "nameLocation": "5796:17:1", + "nameLocation": "5795:17:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5791:22:1", + "src": "5790:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7205,7 +7205,7 @@ "id": 763, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5791:4:1", + "src": "5790:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7218,10 +7218,10 @@ "id": 766, "mutability": "mutable", "name": "baseTrackingBorrowSpeed", - "nameLocation": "5824:23:1", + "nameLocation": "5823:23:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5819:28:1", + "src": "5818:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7232,7 +7232,7 @@ "id": 765, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5819:4:1", + "src": "5818:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7245,10 +7245,10 @@ "id": 768, "mutability": "mutable", "name": "baseTrackingSupplySpeed", - "nameLocation": "5858:23:1", + "nameLocation": "5857:23:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5853:28:1", + "src": "5852:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7259,7 +7259,7 @@ "id": 767, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5853:4:1", + "src": "5852:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7272,10 +7272,10 @@ "id": 770, "mutability": "mutable", "name": "borrowAPR", - "nameLocation": "5892:9:1", + "nameLocation": "5891:9:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5887:14:1", + "src": "5886:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7286,7 +7286,7 @@ "id": 769, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5887:4:1", + "src": "5886:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7299,10 +7299,10 @@ "id": 772, "mutability": "mutable", "name": "bulkerAllowance", - "nameLocation": "5912:15:1", + "nameLocation": "5911:15:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5907:20:1", + "src": "5906:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7313,7 +7313,7 @@ "id": 771, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5907:4:1", + "src": "5906:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7326,10 +7326,10 @@ "id": 776, "mutability": "mutable", "name": "collateralAssets", - "nameLocation": "5967:16:1", + "nameLocation": "5966:16:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5933:50:1", + "src": "5932:50:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7344,14 +7344,14 @@ "id": 773, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "5933:31:1" + "5932:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "5933:31:1" + "src": "5932:31:1" }, "referencedDeclaration": 731, - "src": "5933:31:1", + "src": "5932:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" @@ -7359,7 +7359,7 @@ }, "id": 775, "nodeType": "ArrayTypeName", - "src": "5933:33:1", + "src": "5932:33:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" @@ -7372,10 +7372,10 @@ "id": 778, "mutability": "mutable", "name": "earnAPR", - "nameLocation": "5994:7:1", + "nameLocation": "5993:7:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "5989:12:1", + "src": "5988:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7386,7 +7386,7 @@ "id": 777, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5989:4:1", + "src": "5988:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7399,10 +7399,10 @@ "id": 780, "mutability": "mutable", "name": "nativeAssetWalletBalance", - "nameLocation": "6012:24:1", + "nameLocation": "6011:24:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "6007:29:1", + "src": "6006:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7413,7 +7413,7 @@ "id": 779, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6007:4:1", + "src": "6006:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7426,10 +7426,10 @@ "id": 782, "mutability": "mutable", "name": "totalBorrow", - "nameLocation": "6047:11:1", + "nameLocation": "6046:11:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "6042:16:1", + "src": "6041:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7440,7 +7440,7 @@ "id": 781, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6042:4:1", + "src": "6041:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7453,10 +7453,10 @@ "id": 784, "mutability": "mutable", "name": "totalBorrowPrincipal", - "nameLocation": "6069:20:1", + "nameLocation": "6068:20:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "6064:25:1", + "src": "6063:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7467,7 +7467,7 @@ "id": 783, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6064:4:1", + "src": "6063:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7480,10 +7480,10 @@ "id": 786, "mutability": "mutable", "name": "totalSupply", - "nameLocation": "6100:11:1", + "nameLocation": "6099:11:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "6095:16:1", + "src": "6094:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7494,7 +7494,7 @@ "id": 785, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6095:4:1", + "src": "6094:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7507,10 +7507,10 @@ "id": 788, "mutability": "mutable", "name": "totalSupplyPrincipal", - "nameLocation": "6122:20:1", + "nameLocation": "6121:20:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "6117:25:1", + "src": "6116:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7521,7 +7521,7 @@ "id": 787, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6117:4:1", + "src": "6116:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7534,10 +7534,10 @@ "id": 790, "mutability": "mutable", "name": "trackingIndexScale", - "nameLocation": "6153:18:1", + "nameLocation": "6152:18:1", "nodeType": "VariableDeclaration", "scope": 791, - "src": "6148:23:1", + "src": "6147:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7548,7 +7548,7 @@ "id": 789, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6148:4:1", + "src": "6147:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7558,18 +7558,18 @@ } ], "name": "CometStateWithAccountState", - "nameLocation": "5717:26:1", - "scope": 1272, + "nameLocation": "5716:26:1", + "scope": 1278, "visibility": "public" }, { "id": 981, "nodeType": "FunctionDefinition", - "src": "6180:2007:1", + "src": "6179:2007:1", "body": { "id": 980, "nodeType": "Block", - "src": "6248:1939:1", + "src": "6247:1939:1", "statements": [ { "assignments": [ @@ -7581,10 +7581,10 @@ "id": 801, "mutability": "mutable", "name": "numAssets", - "nameLocation": "6259:9:1", + "nameLocation": "6258:9:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6254:14:1", + "src": "6253:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7595,7 +7595,7 @@ "id": 800, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6254:4:1", + "src": "6253:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7615,7 +7615,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6271:5:1", + "src": "6270:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -7626,11 +7626,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6277:9:1", + "memberLocation": "6276:9:1", "memberName": "numAssets", "nodeType": "MemberAccess", "referencedDeclaration": 534, - "src": "6271:15:1", + "src": "6270:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" @@ -7645,7 +7645,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6271:17:1", + "src": "6270:17:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -7653,7 +7653,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6254:34:1" + "src": "6253:34:1" }, { "assignments": [ @@ -7665,10 +7665,10 @@ "id": 807, "mutability": "mutable", "name": "baseToken", - "nameLocation": "6302:9:1", + "nameLocation": "6301:9:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6294:17:1", + "src": "6293:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7679,7 +7679,7 @@ "id": 806, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6294:7:1", + "src": "6293:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7700,7 +7700,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6314:5:1", + "src": "6313:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -7711,11 +7711,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6320:9:1", + "memberLocation": "6319:9:1", "memberName": "baseToken", "nodeType": "MemberAccess", "referencedDeclaration": 439, - "src": "6314:15:1", + "src": "6313:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" @@ -7730,7 +7730,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6314:17:1", + "src": "6313:17:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7738,7 +7738,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6294:37:1" + "src": "6293:37:1" }, { "assignments": [ @@ -7750,10 +7750,10 @@ "id": 813, "mutability": "mutable", "name": "baseTokenPriceFeed", - "nameLocation": "6345:18:1", + "nameLocation": "6344:18:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6337:26:1", + "src": "6336:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7764,7 +7764,7 @@ "id": 812, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6337:7:1", + "src": "6336:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7785,7 +7785,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6366:5:1", + "src": "6365:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -7796,11 +7796,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6372:18:1", + "memberLocation": "6371:18:1", "memberName": "baseTokenPriceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 444, - "src": "6366:24:1", + "src": "6365:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" @@ -7815,7 +7815,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6366:26:1", + "src": "6365:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7823,7 +7823,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6337:55:1" + "src": "6336:55:1" }, { "assignments": [ @@ -7835,10 +7835,10 @@ "id": 819, "mutability": "mutable", "name": "borrowMin", - "nameLocation": "6403:9:1", + "nameLocation": "6402:9:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6398:14:1", + "src": "6397:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7849,7 +7849,7 @@ "id": 818, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6398:4:1", + "src": "6397:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7869,7 +7869,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6415:5:1", + "src": "6414:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -7880,11 +7880,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6421:13:1", + "memberLocation": "6420:13:1", "memberName": "baseBorrowMin", "nodeType": "MemberAccess", "referencedDeclaration": 524, - "src": "6415:19:1", + "src": "6414:19:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -7899,7 +7899,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6415:21:1", + "src": "6414:21:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7907,7 +7907,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6398:38:1" + "src": "6397:38:1" }, { "assignments": [ @@ -7919,10 +7919,10 @@ "id": 825, "mutability": "mutable", "name": "trackingIndexScale", - "nameLocation": "6447:18:1", + "nameLocation": "6446:18:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6442:23:1", + "src": "6441:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7933,7 +7933,7 @@ "id": 824, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6442:4:1", + "src": "6441:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7953,7 +7953,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6468:5:1", + "src": "6467:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -7964,11 +7964,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6474:18:1", + "memberLocation": "6473:18:1", "memberName": "trackingIndexScale", "nodeType": "MemberAccess", "referencedDeclaration": 504, - "src": "6468:24:1", + "src": "6467:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -7983,7 +7983,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6468:26:1", + "src": "6467:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7991,7 +7991,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6442:52:1" + "src": "6441:52:1" }, { "assignments": [ @@ -8003,10 +8003,10 @@ "id": 831, "mutability": "mutable", "name": "baseTrackingSupplySpeed", - "nameLocation": "6505:23:1", + "nameLocation": "6504:23:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6500:28:1", + "src": "6499:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8017,7 +8017,7 @@ "id": 830, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6500:4:1", + "src": "6499:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8037,7 +8037,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6531:5:1", + "src": "6530:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8048,11 +8048,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6537:23:1", + "memberLocation": "6536:23:1", "memberName": "baseTrackingSupplySpeed", "nodeType": "MemberAccess", "referencedDeclaration": 509, - "src": "6531:29:1", + "src": "6530:29:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -8067,7 +8067,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6531:31:1", + "src": "6530:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8075,7 +8075,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6500:62:1" + "src": "6499:62:1" }, { "assignments": [ @@ -8087,10 +8087,10 @@ "id": 837, "mutability": "mutable", "name": "baseTrackingBorrowSpeed", - "nameLocation": "6573:23:1", + "nameLocation": "6572:23:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6568:28:1", + "src": "6567:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8101,7 +8101,7 @@ "id": 836, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6568:4:1", + "src": "6567:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8121,7 +8121,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6599:5:1", + "src": "6598:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8132,11 +8132,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6605:23:1", + "memberLocation": "6604:23:1", "memberName": "baseTrackingBorrowSpeed", "nodeType": "MemberAccess", "referencedDeclaration": 514, - "src": "6599:29:1", + "src": "6598:29:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -8151,7 +8151,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6599:31:1", + "src": "6598:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8159,7 +8159,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6568:62:1" + "src": "6567:62:1" }, { "assignments": [ @@ -8171,10 +8171,10 @@ "id": 843, "mutability": "mutable", "name": "baseMinForRewards", - "nameLocation": "6641:17:1", + "nameLocation": "6640:17:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6636:22:1", + "src": "6635:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8185,7 +8185,7 @@ "id": 842, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6636:4:1", + "src": "6635:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8205,7 +8205,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6661:5:1", + "src": "6660:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8216,11 +8216,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6667:17:1", + "memberLocation": "6666:17:1", "memberName": "baseMinForRewards", "nodeType": "MemberAccess", "referencedDeclaration": 519, - "src": "6661:23:1", + "src": "6660:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -8235,7 +8235,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6661:25:1", + "src": "6660:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8243,7 +8243,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6636:50:1" + "src": "6635:50:1" }, { "assignments": [ @@ -8255,10 +8255,10 @@ "id": 849, "mutability": "mutable", "name": "utilization", - "nameLocation": "6697:11:1", + "nameLocation": "6696:11:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6692:16:1", + "src": "6691:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8269,7 +8269,7 @@ "id": 848, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6692:4:1", + "src": "6691:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8289,7 +8289,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6711:5:1", + "src": "6710:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8300,11 +8300,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6717:14:1", + "memberLocation": "6716:14:1", "memberName": "getUtilization", "nodeType": "MemberAccess", "referencedDeclaration": 424, - "src": "6711:20:1", + "src": "6710:20:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -8319,7 +8319,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6711:22:1", + "src": "6710:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8327,7 +8327,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6692:41:1" + "src": "6691:41:1" }, { "assignments": [ @@ -8339,10 +8339,10 @@ "id": 855, "mutability": "mutable", "name": "totalSupply", - "nameLocation": "6744:11:1", + "nameLocation": "6743:11:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6739:16:1", + "src": "6738:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8353,7 +8353,7 @@ "id": 854, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6739:4:1", + "src": "6738:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8373,7 +8373,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6758:5:1", + "src": "6757:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8384,11 +8384,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6764:11:1", + "memberLocation": "6763:11:1", "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 386, - "src": "6758:17:1", + "src": "6757:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -8403,7 +8403,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6758:19:1", + "src": "6757:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8411,7 +8411,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6739:38:1" + "src": "6738:38:1" }, { "assignments": [ @@ -8423,10 +8423,10 @@ "id": 861, "mutability": "mutable", "name": "totalBorrow", - "nameLocation": "6788:11:1", + "nameLocation": "6787:11:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6783:16:1", + "src": "6782:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8437,7 +8437,7 @@ "id": 860, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6783:4:1", + "src": "6782:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8457,7 +8457,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6802:5:1", + "src": "6801:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8468,11 +8468,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6808:11:1", + "memberLocation": "6807:11:1", "memberName": "totalBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 391, - "src": "6802:17:1", + "src": "6801:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -8487,7 +8487,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6802:19:1", + "src": "6801:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8495,7 +8495,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6783:38:1" + "src": "6782:38:1" }, { "assignments": [ @@ -8507,10 +8507,10 @@ "id": 870, "mutability": "mutable", "name": "totalsBasic", - "nameLocation": "6852:11:1", + "nameLocation": "6851:11:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6827:36:1", + "src": "6826:36:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8524,15 +8524,15 @@ "id": 868, "name": "Comet.TotalsBasic", "nameLocations": [ - "6827:5:1", - "6833:11:1" + "6826:5:1", + "6832:11:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 323, - "src": "6827:17:1" + "src": "6826:17:1" }, "referencedDeclaration": 323, - "src": "6827:17:1", + "src": "6826:17:1", "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_storage_ptr", "typeString": "struct Comet.TotalsBasic" @@ -8552,7 +8552,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6866:5:1", + "src": "6865:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8563,11 +8563,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6872:11:1", + "memberLocation": "6871:11:1", "memberName": "totalsBasic", "nodeType": "MemberAccess", "referencedDeclaration": 581, - "src": "6866:17:1", + "src": "6865:17:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_TotalsBasic_$323_memory_ptr_$", "typeString": "function () view external returns (struct Comet.TotalsBasic memory)" @@ -8582,7 +8582,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6866:19:1", + "src": "6865:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", @@ -8590,7 +8590,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6827:58:1" + "src": "6826:58:1" }, { "assignments": [ @@ -8602,10 +8602,10 @@ "id": 876, "mutability": "mutable", "name": "borrowRatePerSecond", - "nameLocation": "6896:19:1", + "nameLocation": "6895:19:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6891:24:1", + "src": "6890:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8616,7 +8616,7 @@ "id": 875, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6891:4:1", + "src": "6890:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8634,7 +8634,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 849, - "src": "6938:11:1", + "src": "6937:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8654,7 +8654,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6918:5:1", + "src": "6917:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8665,11 +8665,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6924:13:1", + "memberLocation": "6923:13:1", "memberName": "getBorrowRate", "nodeType": "MemberAccess", "referencedDeclaration": 419, - "src": "6918:19:1", + "src": "6917:19:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", "typeString": "function (uint256) view external returns (uint64)" @@ -8684,7 +8684,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6918:32:1", + "src": "6917:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -8692,7 +8692,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6891:59:1" + "src": "6890:59:1" }, { "assignments": [ @@ -8704,10 +8704,10 @@ "id": 883, "mutability": "mutable", "name": "supplyRatePerSecond", - "nameLocation": "6961:19:1", + "nameLocation": "6960:19:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "6956:24:1", + "src": "6955:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8718,7 +8718,7 @@ "id": 882, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6956:4:1", + "src": "6955:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8736,7 +8736,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 849, - "src": "7003:11:1", + "src": "7002:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8756,7 +8756,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "6983:5:1", + "src": "6982:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -8767,11 +8767,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "6989:13:1", + "memberLocation": "6988:13:1", "memberName": "getSupplyRate", "nodeType": "MemberAccess", "referencedDeclaration": 412, - "src": "6983:19:1", + "src": "6982:19:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint64_$", "typeString": "function (uint256) view external returns (uint64)" @@ -8786,7 +8786,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "6983:32:1", + "src": "6982:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint64", @@ -8794,7 +8794,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6956:59:1" + "src": "6955:59:1" }, { "assignments": [ @@ -8806,10 +8806,10 @@ "id": 891, "mutability": "mutable", "name": "baseAsset", - "nameLocation": "7039:9:1", + "nameLocation": "7038:9:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "7022:26:1", + "src": "7021:26:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8823,14 +8823,14 @@ "id": 889, "name": "BaseAsset", "nameLocations": [ - "7022:9:1" + "7021:9:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 656, - "src": "7022:9:1" + "src": "7021:9:1" }, "referencedDeclaration": 656, - "src": "7022:9:1", + "src": "7021:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_storage_ptr", "typeString": "struct CometQuery.BaseAsset" @@ -8848,7 +8848,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 807, - "src": "7080:9:1", + "src": "7079:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8866,7 +8866,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 807, - "src": "7111:9:1", + "src": "7110:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8885,7 +8885,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7105:5:1", + "src": "7104:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" @@ -8900,7 +8900,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7105:16:1", + "src": "7104:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", @@ -8912,11 +8912,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7122:6:1", + "memberLocation": "7121:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 629, - "src": "7105:23:1", + "src": "7104:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" @@ -8931,7 +8931,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7105:25:1", + "src": "7104:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -8950,7 +8950,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 807, - "src": "7154:9:1", + "src": "7153:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8969,7 +8969,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7148:5:1", + "src": "7147:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" @@ -8984,7 +8984,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7148:16:1", + "src": "7147:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", @@ -8996,11 +8996,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7165:8:1", + "memberLocation": "7164:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 619, - "src": "7148:25:1", + "src": "7147:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" @@ -9015,7 +9015,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7148:27:1", + "src": "7147:27:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9028,7 +9028,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 819, - "src": "7194:9:1", + "src": "7193:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9046,7 +9046,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 807, - "src": "7223:9:1", + "src": "7222:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9065,7 +9065,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7217:5:1", + "src": "7216:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" @@ -9080,7 +9080,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7217:16:1", + "src": "7216:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", @@ -9092,11 +9092,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7234:4:1", + "memberLocation": "7233:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 624, - "src": "7217:21:1", + "src": "7216:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" @@ -9111,7 +9111,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7217:23:1", + "src": "7216:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -9124,7 +9124,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 813, - "src": "7259:18:1", + "src": "7258:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9138,7 +9138,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 813, - "src": "7307:18:1", + "src": "7306:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9158,7 +9158,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "7292:5:1", + "src": "7291:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -9169,11 +9169,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7298:8:1", + "memberLocation": "7297:8:1", "memberName": "getPrice", "nodeType": "MemberAccess", "referencedDeclaration": 367, - "src": "7292:14:1", + "src": "7291:14:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -9188,7 +9188,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7292:34:1", + "src": "7291:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9205,7 +9205,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "7385:5:1", + "src": "7384:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -9225,7 +9225,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7377:7:1", + "src": "7376:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -9234,7 +9234,7 @@ "id": 919, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7377:7:1", + "src": "7376:7:1", "typeDescriptions": {} } }, @@ -9247,7 +9247,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7377:14:1", + "src": "7376:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -9270,7 +9270,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 807, - "src": "7356:9:1", + "src": "7355:9:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9289,7 +9289,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "7350:5:1", + "src": "7349:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" @@ -9304,7 +9304,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7350:16:1", + "src": "7349:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", @@ -9316,11 +9316,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "7367:9:1", + "memberLocation": "7366:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 614, - "src": "7350:26:1", + "src": "7349:26:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -9335,7 +9335,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7350:42:1", + "src": "7349:42:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9383,7 +9383,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 656, - "src": "7051:9:1", + "src": "7050:9:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_BaseAsset_$656_storage_ptr_$", "typeString": "type(struct CometQuery.BaseAsset storage pointer)" @@ -9396,14 +9396,14 @@ "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "7069:9:1", - "7097:6:1", - "7138:8:1", - "7183:9:1", - "7211:4:1", - "7248:9:1", - "7285:5:1", - "7334:14:1" + "7068:9:1", + "7096:6:1", + "7137:8:1", + "7182:9:1", + "7210:4:1", + "7247:9:1", + "7284:5:1", + "7333:14:1" ], "names": [ "baseAsset", @@ -9416,7 +9416,7 @@ "balanceOfComet" ], "nodeType": "FunctionCall", - "src": "7051:348:1", + "src": "7050:348:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", @@ -9424,7 +9424,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7022:377:1" + "src": "7021:377:1" }, { "assignments": [ @@ -9436,10 +9436,10 @@ "id": 930, "mutability": "mutable", "name": "tokens", - "nameLocation": "7431:6:1", + "nameLocation": "7430:6:1", "nodeType": "VariableDeclaration", "scope": 980, - "src": "7406:31:1", + "src": "7405:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9454,14 +9454,14 @@ "id": 927, "name": "CollateralAsset", "nameLocations": [ - "7406:15:1" + "7405:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "7406:15:1" + "src": "7405:15:1" }, "referencedDeclaration": 702, - "src": "7406:15:1", + "src": "7405:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -9469,7 +9469,7 @@ }, "id": 929, "nodeType": "ArrayTypeName", - "src": "7406:17:1", + "src": "7405:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAsset[]" @@ -9487,7 +9487,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 801, - "src": "7462:9:1", + "src": "7461:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9507,7 +9507,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7440:21:1", + "src": "7439:21:1", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAsset memory[] memory)" @@ -9520,14 +9520,14 @@ "id": 931, "name": "CollateralAsset", "nameLocations": [ - "7444:15:1" + "7443:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "7444:15:1" + "src": "7443:15:1" }, "referencedDeclaration": 702, - "src": "7444:15:1", + "src": "7443:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -9535,7 +9535,7 @@ }, "id": 933, "nodeType": "ArrayTypeName", - "src": "7444:17:1", + "src": "7443:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAsset[]" @@ -9551,7 +9551,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7440:32:1", + "src": "7439:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", @@ -9559,13 +9559,13 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7406:66:1" + "src": "7405:66:1" }, { "body": { "id": 957, "nodeType": "Block", - "src": "7516:51:1", + "src": "7515:51:1", "statements": [ { "expression": { @@ -9581,7 +9581,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 930, - "src": "7524:6:1", + "src": "7523:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" @@ -9594,7 +9594,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 939, - "src": "7531:1:1", + "src": "7530:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9605,7 +9605,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7524:9:1", + "src": "7523:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" @@ -9621,7 +9621,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 794, - "src": "7551:5:1", + "src": "7550:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -9633,7 +9633,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 939, - "src": "7558:1:1", + "src": "7557:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9655,8 +9655,8 @@ "name": "collateralInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1207, - "src": "7536:14:1", + "referencedDeclaration": 1213, + "src": "7535:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_uint8_$returns$_t_struct$_CollateralAsset_$702_memory_ptr_$", "typeString": "function (contract Comet,uint8) view returns (struct CometQuery.CollateralAsset memory)" @@ -9671,14 +9671,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "7536:24:1", + "src": "7535:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "src": "7524:36:1", + "src": "7523:36:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" @@ -9686,7 +9686,7 @@ }, "id": 956, "nodeType": "ExpressionStatement", - "src": "7524:36:1" + "src": "7523:36:1" } ] }, @@ -9706,7 +9706,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 939, - "src": "7496:1:1", + "src": "7495:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9720,13 +9720,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 801, - "src": "7500:9:1", + "src": "7499:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7496:13:1", + "src": "7495:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9743,10 +9743,10 @@ "id": 939, "mutability": "mutable", "name": "i", - "nameLocation": "7489:1:1", + "nameLocation": "7488:1:1", "nodeType": "VariableDeclaration", "scope": 958, - "src": "7483:7:1", + "src": "7482:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9757,7 +9757,7 @@ "id": 938, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7483:5:1", + "src": "7482:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9776,7 +9776,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7493:1:1", + "src": "7492:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9784,7 +9784,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7483:11:1" + "src": "7482:11:1" }, "loopExpression": { "expression": { @@ -9796,14 +9796,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7511:3:1", + "src": "7510:3:1", "subExpression": { "id": 945, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 939, - "src": "7511:1:1", + "src": "7510:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9816,10 +9816,10 @@ }, "id": 947, "nodeType": "ExpressionStatement", - "src": "7511:3:1" + "src": "7510:3:1" }, "nodeType": "ForStatement", - "src": "7478:89:1" + "src": "7477:89:1" }, { "expression": { @@ -9830,7 +9830,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 891, - "src": "7618:9:1", + "src": "7617:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" @@ -9842,7 +9842,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 843, - "src": "7656:17:1", + "src": "7655:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9854,7 +9854,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 837, - "src": "7708:23:1", + "src": "7707:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9866,7 +9866,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 831, - "src": "7766:23:1", + "src": "7765:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9888,7 +9888,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 876, - "src": "7810:19:1", + "src": "7809:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9902,13 +9902,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 639, - "src": "7832:16:1", + "src": "7831:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7810:38:1", + "src": "7809:38:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9920,7 +9920,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 930, - "src": "7876:6:1", + "src": "7875:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" @@ -9942,7 +9942,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 883, - "src": "7901:19:1", + "src": "7900:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9956,13 +9956,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 639, - "src": "7923:16:1", + "src": "7922:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7901:38:1", + "src": "7900:38:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9974,7 +9974,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 861, - "src": "7962:11:1", + "src": "7961:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9987,7 +9987,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 870, - "src": "8005:11:1", + "src": "8004:11:1", "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", "typeString": "struct Comet.TotalsBasic memory" @@ -9998,11 +9998,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8017:15:1", + "memberLocation": "8016:15:1", "memberName": "totalBorrowBase", "nodeType": "MemberAccess", "referencedDeclaration": 318, - "src": "8005:27:1", + "src": "8004:27:1", "typeDescriptions": { "typeIdentifier": "t_uint104", "typeString": "uint104" @@ -10014,7 +10014,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 855, - "src": "8055:11:1", + "src": "8054:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10027,7 +10027,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 870, - "src": "8098:11:1", + "src": "8097:11:1", "typeDescriptions": { "typeIdentifier": "t_struct$_TotalsBasic_$323_memory_ptr", "typeString": "struct Comet.TotalsBasic memory" @@ -10038,11 +10038,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8110:15:1", + "memberLocation": "8109:15:1", "memberName": "totalSupplyBase", "nodeType": "MemberAccess", "referencedDeclaration": 316, - "src": "8098:27:1", + "src": "8097:27:1", "typeDescriptions": { "typeIdentifier": "t_uint104", "typeString": "uint104" @@ -10054,7 +10054,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 825, - "src": "8155:18:1", + "src": "8154:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10117,7 +10117,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 759, - "src": "7586:10:1", + "src": "7585:10:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CometState_$759_storage_ptr_$", "typeString": "type(struct CometQuery.CometState storage pointer)" @@ -10130,18 +10130,18 @@ "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "7607:9:1", - "7637:17:1", - "7683:23:1", - "7741:23:1", - "7799:9:1", - "7858:16:1", - "7892:7:1", - "7949:11:1", - "7983:20:1", - "8042:11:1", - "8076:20:1", - "8135:18:1" + "7606:9:1", + "7636:17:1", + "7682:23:1", + "7740:23:1", + "7798:9:1", + "7857:16:1", + "7891:7:1", + "7948:11:1", + "7982:20:1", + "8041:11:1", + "8075:20:1", + "8134:18:1" ], "names": [ "baseAsset", @@ -10158,7 +10158,7 @@ "trackingIndexScale" ], "nodeType": "FunctionCall", - "src": "7586:596:1", + "src": "7585:596:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", @@ -10168,7 +10168,7 @@ "functionReturnParameters": 799, "id": 979, "nodeType": "Return", - "src": "7573:609:1" + "src": "7572:609:1" } ] }, @@ -10177,7 +10177,7 @@ "kind": "function", "modifiers": [], "name": "query", - "nameLocation": "6189:5:1", + "nameLocation": "6188:5:1", "parameters": { "id": 795, "nodeType": "ParameterList", @@ -10187,10 +10187,10 @@ "id": 794, "mutability": "mutable", "name": "comet", - "nameLocation": "6201:5:1", + "nameLocation": "6200:5:1", "nodeType": "VariableDeclaration", "scope": 981, - "src": "6195:11:1", + "src": "6194:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10204,14 +10204,14 @@ "id": 792, "name": "Comet", "nameLocations": [ - "6195:5:1" + "6194:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "6195:5:1" + "src": "6194:5:1" }, "referencedDeclaration": 598, - "src": "6195:5:1", + "src": "6194:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10220,7 +10220,7 @@ "visibility": "internal" } ], - "src": "6194:13:1" + "src": "6193:13:1" }, "returnParameters": { "id": 799, @@ -10234,7 +10234,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 981, - "src": "6229:17:1", + "src": "6228:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10248,14 +10248,14 @@ "id": 796, "name": "CometState", "nameLocations": [ - "6229:10:1" + "6228:10:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 759, - "src": "6229:10:1" + "src": "6228:10:1" }, "referencedDeclaration": 759, - "src": "6229:10:1", + "src": "6228:10:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", "typeString": "struct CometQuery.CometState" @@ -10264,21 +10264,21 @@ "visibility": "internal" } ], - "src": "6228:19:1" + "src": "6227:19:1" }, - "scope": 1272, + "scope": 1278, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 1142, + "id": 1148, "nodeType": "FunctionDefinition", - "src": "8191:2076:1", + "src": "8190:2086:1", "body": { - "id": 1141, + "id": 1147, "nodeType": "Block", - "src": "8351:1916:1", + "src": "8350:1926:1", "statements": [ { "assignments": [ @@ -10290,10 +10290,10 @@ "id": 996, "mutability": "mutable", "name": "response", - "nameLocation": "8375:8:1", + "nameLocation": "8374:8:1", "nodeType": "VariableDeclaration", - "scope": 1141, - "src": "8357:26:1", + "scope": 1147, + "src": "8356:26:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10307,14 +10307,14 @@ "id": 994, "name": "CometState", "nameLocations": [ - "8357:10:1" + "8356:10:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 759, - "src": "8357:10:1" + "src": "8356:10:1" }, "referencedDeclaration": 759, - "src": "8357:10:1", + "src": "8356:10:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_storage_ptr", "typeString": "struct CometQuery.CometState" @@ -10332,7 +10332,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, - "src": "8392:5:1", + "src": "8391:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10351,7 +10351,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 981, - "src": "8386:5:1", + "src": "8385:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$returns$_t_struct$_CometState_$759_memory_ptr_$", "typeString": "function (contract Comet) view returns (struct CometQuery.CometState memory)" @@ -10366,7 +10366,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8386:12:1", + "src": "8385:12:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", @@ -10374,7 +10374,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8357:41:1" + "src": "8356:41:1" }, { "assignments": [ @@ -10386,10 +10386,10 @@ "id": 1002, "mutability": "mutable", "name": "baseAssetSupplyBalance", - "nameLocation": "8410:22:1", + "nameLocation": "8409:22:1", "nodeType": "VariableDeclaration", - "scope": 1141, - "src": "8405:27:1", + "scope": 1147, + "src": "8404:27:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10400,7 +10400,7 @@ "id": 1001, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8405:4:1", + "src": "8404:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10418,7 +10418,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "8451:7:1", + "src": "8450:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10438,7 +10438,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, - "src": "8435:5:1", + "src": "8434:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10449,11 +10449,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8441:9:1", + "memberLocation": "8440:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 398, - "src": "8435:15:1", + "src": "8434:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -10468,7 +10468,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8435:24:1", + "src": "8434:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10476,7 +10476,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8405:54:1" + "src": "8404:54:1" }, { "assignments": [ @@ -10488,10 +10488,10 @@ "id": 1009, "mutability": "mutable", "name": "baseAssetBorrowBalance", - "nameLocation": "8470:22:1", + "nameLocation": "8469:22:1", "nodeType": "VariableDeclaration", - "scope": 1141, - "src": "8465:27:1", + "scope": 1147, + "src": "8464:27:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10502,7 +10502,7 @@ "id": 1008, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8465:4:1", + "src": "8464:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10520,7 +10520,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "8517:7:1", + "src": "8516:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10540,7 +10540,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, - "src": "8495:5:1", + "src": "8494:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10551,11 +10551,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8501:15:1", + "memberLocation": "8500:15:1", "memberName": "borrowBalanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 405, - "src": "8495:21:1", + "src": "8494:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -10570,7 +10570,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8495:30:1", + "src": "8494:30:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10578,7 +10578,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8465:60:1" + "src": "8464:60:1" }, { "assignments": [ @@ -10590,10 +10590,10 @@ "id": 1017, "mutability": "mutable", "name": "baseAsset", - "nameLocation": "8565:9:1", + "nameLocation": "8564:9:1", "nodeType": "VariableDeclaration", - "scope": 1141, - "src": "8532:42:1", + "scope": 1147, + "src": "8531:42:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10607,14 +10607,14 @@ "id": 1015, "name": "BaseAssetWithAccountState", "nameLocations": [ - "8532:25:1" + "8531:25:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 679, - "src": "8532:25:1" + "src": "8531:25:1" }, "referencedDeclaration": 679, - "src": "8532:25:1", + "src": "8531:25:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_storage_ptr", "typeString": "struct CometQuery.BaseAssetWithAccountState" @@ -10623,7 +10623,7 @@ "visibility": "internal" } ], - "id": 1067, + "id": 1073, "initialValue": { "arguments": [ { @@ -10634,7 +10634,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8622:8:1", + "src": "8621:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" @@ -10645,11 +10645,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8631:9:1", + "memberLocation": "8630:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8622:18:1", + "src": "8621:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" @@ -10660,11 +10660,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8641:9:1", + "memberLocation": "8640:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 641, - "src": "8622:28:1", + "src": "8621:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10678,7 +10678,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "8715:7:1", + "src": "8714:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10692,7 +10692,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, - "src": "8732:5:1", + "src": "8731:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -10712,7 +10712,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8724:7:1", + "src": "8723:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -10721,7 +10721,7 @@ "id": 1029, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8724:7:1", + "src": "8723:7:1", "typeDescriptions": {} } }, @@ -10734,7 +10734,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8724:14:1", + "src": "8723:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -10763,7 +10763,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8675:8:1", + "src": "8674:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" @@ -10774,11 +10774,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8684:9:1", + "memberLocation": "8683:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8675:18:1", + "src": "8674:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" @@ -10789,11 +10789,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8694:9:1", + "memberLocation": "8693:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 641, - "src": "8675:28:1", + "src": "8674:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10812,7 +10812,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "8669:5:1", + "src": "8668:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" @@ -10827,7 +10827,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8669:35:1", + "src": "8668:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", @@ -10839,11 +10839,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "8705:9:1", + "memberLocation": "8704:9:1", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 607, - "src": "8669:45:1", + "src": "8668:45:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" @@ -10858,7 +10858,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8669:70:1", + "src": "8668:70:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10867,85 +10867,175 @@ }, { "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, - "id": 1036, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1034, - "name": "baseAssetSupplyBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1002, - "src": "8756:22:1", + "arguments": [ + { + "id": 1036, + "name": "baseAssetSupplyBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8759:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8755:3:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 1034, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "8755:3:1", + "typeDescriptions": {} + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8755:27:1", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1035, - "name": "baseAssetBorrowBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "8781:22:1", + "arguments": [ + { + "id": 1040, + "name": "baseAssetBorrowBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1009, + "src": "8789:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8785:3:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 1038, + "name": "int", + "nodeType": "ElementaryTypeName", + "src": "8785:3:1", + "typeDescriptions": {} + } + }, + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8785:27:1", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, - "src": "8756:47:1", + "src": "8755:57:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" } }, { "expression": { "expression": { - "id": 1037, + "id": 1043, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8819:8:1", + "src": "8828:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1038, + "id": 1044, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8828:9:1", + "memberLocation": "8837:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8819:18:1", + "src": "8828:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1039, + "id": 1045, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8838:6:1", + "memberLocation": "8847:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 655, - "src": "8819:25:1", + "src": "8828:25:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -10954,42 +11044,42 @@ { "expression": { "expression": { - "id": 1040, + "id": 1046, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8862:8:1", + "src": "8871:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1041, + "id": 1047, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8871:9:1", + "memberLocation": "8880:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8862:18:1", + "src": "8871:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1042, + "id": 1048, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8881:8:1", + "memberLocation": "8890:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 645, - "src": "8862:27:1", + "src": "8871:27:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10998,42 +11088,42 @@ { "expression": { "expression": { - "id": 1043, + "id": 1049, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8908:8:1", + "src": "8917:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1044, + "id": 1050, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8917:9:1", + "memberLocation": "8926:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8908:18:1", + "src": "8917:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1045, + "id": 1051, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8927:9:1", + "memberLocation": "8936:9:1", "memberName": "minBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 647, - "src": "8908:28:1", + "src": "8917:28:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11042,42 +11132,42 @@ { "expression": { "expression": { - "id": 1046, + "id": 1052, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8950:8:1", + "src": "8959:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1047, + "id": 1053, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8959:9:1", + "memberLocation": "8968:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8950:18:1", + "src": "8959:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1048, + "id": 1054, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "8969:4:1", + "memberLocation": "8978:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 649, - "src": "8950:23:1", + "src": "8959:23:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -11086,42 +11176,42 @@ { "expression": { "expression": { - "id": 1049, + "id": 1055, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "8992:8:1", + "src": "9001:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1050, + "id": 1056, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9001:9:1", + "memberLocation": "9010:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "8992:18:1", + "src": "9001:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1051, + "id": 1057, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9011:9:1", + "memberLocation": "9020:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 651, - "src": "8992:28:1", + "src": "9001:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11130,42 +11220,42 @@ { "expression": { "expression": { - "id": 1052, + "id": 1058, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9035:8:1", + "src": "9044:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1053, + "id": 1059, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9044:9:1", + "memberLocation": "9053:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "9035:18:1", + "src": "9044:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1054, + "id": 1060, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9054:5:1", + "memberLocation": "9063:5:1", "memberName": "price", "nodeType": "MemberAccess", "referencedDeclaration": 653, - "src": "9035:24:1", + "src": "9044:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11174,42 +11264,42 @@ { "expression": { "expression": { - "id": 1055, + "id": 1061, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9083:8:1", + "src": "9092:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1056, + "id": 1062, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9092:9:1", + "memberLocation": "9101:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "9083:18:1", + "src": "9092:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1057, + "id": 1063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9102:14:1", + "memberLocation": "9111:14:1", "memberName": "balanceOfComet", "nodeType": "MemberAccess", "referencedDeclaration": 643, - "src": "9083:33:1", + "src": "9092:33:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11218,12 +11308,12 @@ { "arguments": [ { - "id": 1064, + "id": 1070, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "9185:7:1", + "src": "9194:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11242,42 +11332,42 @@ { "expression": { "expression": { - "id": 1059, + "id": 1065, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9145:8:1", + "src": "9154:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1060, + "id": 1066, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9154:9:1", + "memberLocation": "9163:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 734, - "src": "9145:18:1", + "src": "9154:18:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAsset_$656_memory_ptr", "typeString": "struct CometQuery.BaseAsset memory" } }, - "id": 1061, + "id": 1067, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9164:9:1", + "memberLocation": "9173:9:1", "memberName": "baseAsset", "nodeType": "MemberAccess", "referencedDeclaration": 641, - "src": "9145:28:1", + "src": "9154:28:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11291,18 +11381,18 @@ "typeString": "address" } ], - "id": 1058, + "id": 1064, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "9139:5:1", + "src": "9148:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1062, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -11311,29 +11401,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9139:35:1", + "src": "9148:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1063, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9175:9:1", + "memberLocation": "9184:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 614, - "src": "9139:45:1", + "src": "9148:45:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1065, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, @@ -11342,7 +11432,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9139:54:1", + "src": "9148:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11361,8 +11451,8 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_int256", + "typeString": "int256" }, { "typeIdentifier": "t_string_memory_ptr", @@ -11402,30 +11492,30 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 679, - "src": "8577:25:1", + "src": "8576:25:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_BaseAssetWithAccountState_$679_storage_ptr_$", "typeString": "type(struct CometQuery.BaseAssetWithAccountState storage pointer)" } }, - "id": 1066, + "id": 1072, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "8611:9:1", - "8658:9:1", - "8747:7:1", - "8811:6:1", - "8852:8:1", - "8897:9:1", - "8944:4:1", - "8981:9:1", - "9028:5:1", - "9067:14:1", - "9124:13:1" + "8610:9:1", + "8657:9:1", + "8746:7:1", + "8820:6:1", + "8861:8:1", + "8906:9:1", + "8953:4:1", + "8990:9:1", + "9037:5:1", + "9076:14:1", + "9133:13:1" ], "names": [ "baseAsset", @@ -11441,7 +11531,7 @@ "walletBalance" ], "nodeType": "FunctionCall", - "src": "8577:623:1", + "src": "8576:633:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", @@ -11449,22 +11539,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8532:668:1" + "src": "8531:678:1" }, { "assignments": [ - 1072 + 1078 ], "declarations": [ { "constant": false, - "id": 1072, + "id": 1078, "mutability": "mutable", "name": "tokens", - "nameLocation": "9248:6:1", + "nameLocation": "9257:6:1", "nodeType": "VariableDeclaration", - "scope": 1141, - "src": "9207:47:1", + "scope": 1147, + "src": "9216:47:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11473,28 +11563,28 @@ }, "typeName": { "baseType": { - "id": 1070, + "id": 1076, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1069, + "id": 1075, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "9207:31:1" + "9216:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "9207:31:1" + "src": "9216:31:1" }, "referencedDeclaration": 731, - "src": "9207:31:1", + "src": "9216:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" } }, - "id": 1071, + "id": 1077, "nodeType": "ArrayTypeName", - "src": "9207:33:1", + "src": "9216:33:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" @@ -11503,47 +11593,47 @@ "visibility": "internal" } ], - "id": 1081, + "id": 1087, "initialValue": { "arguments": [ { "expression": { "expression": { - "id": 1077, + "id": 1083, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9302:8:1", + "src": "9311:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1078, + "id": 1084, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9311:16:1", + "memberLocation": "9320:16:1", "memberName": "collateralAssets", "nodeType": "MemberAccess", "referencedDeclaration": 746, - "src": "9302:25:1", + "src": "9311:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 1079, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9328:6:1", + "memberLocation": "9337:6:1", "memberName": "length", "nodeType": "MemberAccess", - "src": "9302:32:1", + "src": "9311:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11557,48 +11647,48 @@ "typeString": "uint256" } ], - "id": 1076, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "9257:37:1", + "src": "9266:37:1", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CometQuery.CollateralAssetWithAccountState memory[] memory)" }, "typeName": { "baseType": { - "id": 1074, + "id": 1080, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1073, + "id": 1079, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "9261:31:1" + "9270:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "9261:31:1" + "src": "9270:31:1" }, "referencedDeclaration": 731, - "src": "9261:31:1", + "src": "9270:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" } }, - "id": 1075, + "id": 1081, "nodeType": "ArrayTypeName", - "src": "9261:33:1", + "src": "9270:33:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_storage_$dyn_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState[]" } } }, - "id": 1080, + "id": 1086, "isConstant": false, "isLValue": false, "isPure": false, @@ -11607,7 +11697,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9257:83:1", + "src": "9266:83:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", @@ -11615,42 +11705,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9207:133:1" + "src": "9216:133:1" }, { "body": { - "id": 1107, + "id": 1113, "nodeType": "Block", - "src": "9407:98:1", + "src": "9416:98:1", "statements": [ { "expression": { - "id": 1105, + "id": 1111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1094, + "id": 1100, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "9415:6:1", + "referencedDeclaration": 1078, + "src": "9424:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" } }, - "id": 1096, + "id": 1102, "indexExpression": { - "id": 1095, + "id": 1101, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1083, - "src": "9422:1:1", + "referencedDeclaration": 1089, + "src": "9431:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11661,7 +11751,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9415:9:1", + "src": "9424:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" @@ -11672,12 +11762,12 @@ "rightHandSide": { "arguments": [ { - "id": 1098, + "id": 1104, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, - "src": "9453:5:1", + "src": "9462:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -11686,40 +11776,40 @@ { "baseExpression": { "expression": { - "id": 1099, + "id": 1105, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9460:8:1", + "src": "9469:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1100, + "id": 1106, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9469:16:1", + "memberLocation": "9478:16:1", "memberName": "collateralAssets", "nodeType": "MemberAccess", "referencedDeclaration": 746, - "src": "9460:25:1", + "src": "9469:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 1102, + "id": 1108, "indexExpression": { - "id": 1101, + "id": 1107, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1083, - "src": "9486:1:1", + "referencedDeclaration": 1089, + "src": "9495:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11730,19 +11820,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9460:28:1", + "src": "9469:28:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, { - "id": 1103, + "id": 1109, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "9490:7:1", + "src": "9499:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11764,18 +11854,18 @@ "typeString": "address payable" } ], - "id": 1097, + "id": 1103, "name": "collateralInfoWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "9427:25:1", + "referencedDeclaration": 1277, + "src": "9436:25:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_struct$_CollateralAsset_$702_memory_ptr_$_t_address_payable_$returns$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$", "typeString": "function (contract Comet,struct CometQuery.CollateralAsset memory,address payable) view returns (struct CometQuery.CollateralAssetWithAccountState memory)" } }, - "id": 1104, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, @@ -11784,22 +11874,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9427:71:1", + "src": "9436:71:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" } }, - "src": "9415:83:1", + "src": "9424:83:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" } }, - "id": 1106, + "id": 1112, "nodeType": "ExpressionStatement", - "src": "9415:83:1" + "src": "9424:83:1" } ] }, @@ -11808,18 +11898,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1090, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1086, + "id": 1092, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1083, - "src": "9364:1:1", + "referencedDeclaration": 1089, + "src": "9373:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11830,67 +11920,67 @@ "rightExpression": { "expression": { "expression": { - "id": 1087, + "id": 1093, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9368:8:1", + "src": "9377:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1088, + "id": 1094, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9377:16:1", + "memberLocation": "9386:16:1", "memberName": "collateralAssets", "nodeType": "MemberAccess", "referencedDeclaration": 746, - "src": "9368:25:1", + "src": "9377:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAsset_$702_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory[] memory" } }, - "id": 1089, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9394:6:1", + "memberLocation": "9403:6:1", "memberName": "length", "nodeType": "MemberAccess", - "src": "9368:32:1", + "src": "9377:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9364:36:1", + "src": "9373:36:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1108, + "id": 1114, "initializationExpression": { "assignments": [ - 1083 + 1089 ], "declarations": [ { "constant": false, - "id": 1083, + "id": 1089, "mutability": "mutable", "name": "i", - "nameLocation": "9357:1:1", + "nameLocation": "9366:1:1", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "9351:7:1", + "scope": 1114, + "src": "9360:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11898,10 +11988,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1082, + "id": 1088, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "9351:5:1", + "src": "9360:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11910,17 +12000,17 @@ "visibility": "internal" } ], - "id": 1085, + "id": 1091, "initialValue": { "hexValue": "30", - "id": 1084, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9361:1:1", + "src": "9370:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11928,11 +12018,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9351:11:1" + "src": "9360:11:1" }, "loopExpression": { "expression": { - "id": 1092, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, @@ -11940,14 +12030,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9402:3:1", + "src": "9411:3:1", "subExpression": { - "id": 1091, + "id": 1097, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1083, - "src": "9402:1:1", + "referencedDeclaration": 1089, + "src": "9411:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11958,23 +12048,23 @@ "typeString": "uint8" } }, - "id": 1093, + "id": 1099, "nodeType": "ExpressionStatement", - "src": "9402:3:1" + "src": "9411:3:1" }, "nodeType": "ForStatement", - "src": "9346:159:1" + "src": "9355:159:1" }, { "expression": { "arguments": [ { - "id": 1110, + "id": 1116, "name": "baseAsset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1017, - "src": "9572:9:1", + "src": "9581:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_BaseAssetWithAccountState_$679_memory_ptr", "typeString": "struct CometQuery.BaseAssetWithAccountState memory" @@ -11982,27 +12072,27 @@ }, { "expression": { - "id": 1111, + "id": 1117, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9610:8:1", + "src": "9619:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1112, + "id": 1118, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9619:17:1", + "memberLocation": "9628:17:1", "memberName": "baseMinForRewards", "nodeType": "MemberAccess", "referencedDeclaration": 736, - "src": "9610:26:1", + "src": "9619:26:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12010,27 +12100,27 @@ }, { "expression": { - "id": 1113, + "id": 1119, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9671:8:1", + "src": "9680:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1114, + "id": 1120, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9680:23:1", + "memberLocation": "9689:23:1", "memberName": "baseTrackingBorrowSpeed", "nodeType": "MemberAccess", "referencedDeclaration": 738, - "src": "9671:32:1", + "src": "9680:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12038,27 +12128,27 @@ }, { "expression": { - "id": 1115, + "id": 1121, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9738:8:1", + "src": "9747:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1116, + "id": 1122, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9747:23:1", + "memberLocation": "9756:23:1", "memberName": "baseTrackingSupplySpeed", "nodeType": "MemberAccess", "referencedDeclaration": 740, - "src": "9738:32:1", + "src": "9747:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12066,27 +12156,27 @@ }, { "expression": { - "id": 1117, + "id": 1123, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9791:8:1", + "src": "9800:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1118, + "id": 1124, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9800:9:1", + "memberLocation": "9809:9:1", "memberName": "borrowAPR", "nodeType": "MemberAccess", "referencedDeclaration": 742, - "src": "9791:18:1", + "src": "9800:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12095,24 +12185,24 @@ { "arguments": [ { - "id": 1121, + "id": 1127, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "9852:7:1", + "src": "9861:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1122, + "id": 1128, "name": "bulker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, - "src": "9861:6:1", + "src": "9870:6:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -12131,33 +12221,33 @@ } ], "expression": { - "id": 1119, + "id": 1125, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, - "src": "9836:5:1", + "src": "9845:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1120, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9842:9:1", + "memberLocation": "9851:9:1", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 597, - "src": "9836:15:1", + "src": "9845:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1123, + "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, @@ -12166,7 +12256,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9836:32:1", + "src": "9845:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12174,12 +12264,12 @@ } }, { - "id": 1124, + "id": 1130, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1072, - "src": "9896:6:1", + "referencedDeclaration": 1078, + "src": "9905:6:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_CollateralAssetWithAccountState_$731_memory_ptr_$dyn_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory[] memory" @@ -12187,27 +12277,27 @@ }, { "expression": { - "id": 1125, + "id": 1131, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "9921:8:1", + "src": "9930:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1126, + "id": 1132, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "9930:7:1", + "memberLocation": "9939:7:1", "memberName": "earnAPR", "nodeType": "MemberAccess", "referencedDeclaration": 748, - "src": "9921:16:1", + "src": "9930:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12215,26 +12305,26 @@ }, { "expression": { - "id": 1127, + "id": 1133, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, - "src": "9973:7:1", + "src": "9982:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 1128, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "9981:7:1", + "memberLocation": "9990:7:1", "memberName": "balance", "nodeType": "MemberAccess", - "src": "9973:15:1", + "src": "9982:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12242,27 +12332,27 @@ }, { "expression": { - "id": 1129, + "id": 1135, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "10011:8:1", + "src": "10020:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1130, + "id": 1136, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10020:11:1", + "memberLocation": "10029:11:1", "memberName": "totalBorrow", "nodeType": "MemberAccess", "referencedDeclaration": 750, - "src": "10011:20:1", + "src": "10020:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12270,27 +12360,27 @@ }, { "expression": { - "id": 1131, + "id": 1137, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "10063:8:1", + "src": "10072:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1132, + "id": 1138, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10072:20:1", + "memberLocation": "10081:20:1", "memberName": "totalBorrowPrincipal", "nodeType": "MemberAccess", "referencedDeclaration": 752, - "src": "10063:29:1", + "src": "10072:29:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12298,27 +12388,27 @@ }, { "expression": { - "id": 1133, + "id": 1139, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "10115:8:1", + "src": "10124:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1134, + "id": 1140, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10124:11:1", + "memberLocation": "10133:11:1", "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 754, - "src": "10115:20:1", + "src": "10124:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12326,27 +12416,27 @@ }, { "expression": { - "id": 1135, + "id": 1141, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "10167:8:1", + "src": "10176:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1136, + "id": 1142, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10176:20:1", + "memberLocation": "10185:20:1", "memberName": "totalSupplyPrincipal", "nodeType": "MemberAccess", "referencedDeclaration": 756, - "src": "10167:29:1", + "src": "10176:29:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12354,27 +12444,27 @@ }, { "expression": { - "id": 1137, + "id": 1143, "name": "response", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 996, - "src": "10226:8:1", + "src": "10235:8:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometState_$759_memory_ptr", "typeString": "struct CometQuery.CometState memory" } }, - "id": 1138, + "id": 1144, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10235:18:1", + "memberLocation": "10244:18:1", "memberName": "trackingIndexScale", "nodeType": "MemberAccess", "referencedDeclaration": 758, - "src": "10226:27:1", + "src": "10235:27:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12440,38 +12530,38 @@ "typeString": "uint256" } ], - "id": 1109, + "id": 1115, "name": "CometStateWithAccountState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 791, - "src": "9524:26:1", + "src": "9533:26:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CometStateWithAccountState_$791_storage_ptr_$", "typeString": "type(struct CometQuery.CometStateWithAccountState storage pointer)" } }, - "id": 1139, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "9561:9:1", - "9591:17:1", - "9646:23:1", - "9713:23:1", - "9780:9:1", - "9819:15:1", - "9878:16:1", - "9912:7:1", - "9947:24:1", - "9998:11:1", - "10041:20:1", - "10102:11:1", - "10145:20:1", - "10206:18:1" + "9570:9:1", + "9600:17:1", + "9655:23:1", + "9722:23:1", + "9789:9:1", + "9828:15:1", + "9887:16:1", + "9921:7:1", + "9956:24:1", + "10007:11:1", + "10050:20:1", + "10111:11:1", + "10154:20:1", + "10215:18:1" ], "names": [ "baseAsset", @@ -12490,7 +12580,7 @@ "trackingIndexScale" ], "nodeType": "FunctionCall", - "src": "9524:738:1", + "src": "9533:738:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", @@ -12498,9 +12588,9 @@ } }, "functionReturnParameters": 993, - "id": 1140, + "id": 1146, "nodeType": "Return", - "src": "9511:751:1" + "src": "9520:751:1" } ] }, @@ -12509,7 +12599,7 @@ "kind": "function", "modifiers": [], "name": "queryWithAccount", - "nameLocation": "8200:16:1", + "nameLocation": "8199:16:1", "parameters": { "id": 989, "nodeType": "ParameterList", @@ -12519,10 +12609,10 @@ "id": 984, "mutability": "mutable", "name": "comet", - "nameLocation": "8228:5:1", + "nameLocation": "8227:5:1", "nodeType": "VariableDeclaration", - "scope": 1142, - "src": "8222:11:1", + "scope": 1148, + "src": "8221:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12536,14 +12626,14 @@ "id": 982, "name": "Comet", "nameLocations": [ - "8222:5:1" + "8221:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "8222:5:1" + "src": "8221:5:1" }, "referencedDeclaration": 598, - "src": "8222:5:1", + "src": "8221:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -12556,10 +12646,10 @@ "id": 986, "mutability": "mutable", "name": "account", - "nameLocation": "8255:7:1", + "nameLocation": "8254:7:1", "nodeType": "VariableDeclaration", - "scope": 1142, - "src": "8239:23:1", + "scope": 1148, + "src": "8238:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12570,7 +12660,7 @@ "id": 985, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8239:15:1", + "src": "8238:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -12584,10 +12674,10 @@ "id": 988, "mutability": "mutable", "name": "bulker", - "nameLocation": "8284:6:1", + "nameLocation": "8283:6:1", "nodeType": "VariableDeclaration", - "scope": 1142, - "src": "8268:22:1", + "scope": 1148, + "src": "8267:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12598,7 +12688,7 @@ "id": 987, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8268:15:1", + "src": "8267:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -12608,7 +12698,7 @@ "visibility": "internal" } ], - "src": "8216:78:1" + "src": "8215:78:1" }, "returnParameters": { "id": 993, @@ -12621,8 +12711,8 @@ "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1142, - "src": "8316:33:1", + "scope": 1148, + "src": "8315:33:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12636,14 +12726,14 @@ "id": 990, "name": "CometStateWithAccountState", "nameLocations": [ - "8316:26:1" + "8315:26:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 791, - "src": "8316:26:1" + "src": "8315:26:1" }, "referencedDeclaration": 791, - "src": "8316:26:1", + "src": "8315:26:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" @@ -12652,36 +12742,36 @@ "visibility": "internal" } ], - "src": "8315:35:1" + "src": "8314:35:1" }, - "scope": 1272, + "scope": 1278, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 1207, + "id": 1213, "nodeType": "FunctionDefinition", - "src": "10271:782:1", + "src": "10280:782:1", "body": { - "id": 1206, + "id": 1212, "nodeType": "Block", - "src": "10366:687:1", + "src": "10375:687:1", "statements": [ { "assignments": [ - 1157 + 1163 ], "declarations": [ { "constant": false, - "id": 1157, + "id": 1163, "mutability": "mutable", "name": "assetInfo", - "nameLocation": "10395:9:1", + "nameLocation": "10404:9:1", "nodeType": "VariableDeclaration", - "scope": 1206, - "src": "10372:32:1", + "scope": 1212, + "src": "10381:32:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12689,21 +12779,21 @@ "typeString": "struct Comet.AssetInfo" }, "typeName": { - "id": 1156, + "id": 1162, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1155, + "id": 1161, "name": "Comet.AssetInfo", "nameLocations": [ - "10372:5:1", - "10378:9:1" + "10381:5:1", + "10387:9:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 306, - "src": "10372:15:1" + "src": "10381:15:1" }, "referencedDeclaration": 306, - "src": "10372:15:1", + "src": "10381:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_storage_ptr", "typeString": "struct Comet.AssetInfo" @@ -12712,16 +12802,16 @@ "visibility": "internal" } ], - "id": 1162, + "id": 1168, "initialValue": { "arguments": [ { - "id": 1160, + "id": 1166, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1147, - "src": "10426:5:1", + "referencedDeclaration": 1153, + "src": "10435:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12736,33 +12826,33 @@ } ], "expression": { - "id": 1158, + "id": 1164, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "10407:5:1", + "referencedDeclaration": 1151, + "src": "10416:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1159, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10413:12:1", + "memberLocation": "10422:12:1", "memberName": "getAssetInfo", "nodeType": "MemberAccess", "referencedDeclaration": 340, - "src": "10407:18:1", + "src": "10416:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_struct$_AssetInfo_$306_memory_ptr_$", "typeString": "function (uint8) view external returns (struct Comet.AssetInfo memory)" } }, - "id": 1161, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, @@ -12771,7 +12861,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10407:25:1", + "src": "10416:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", @@ -12779,34 +12869,34 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10372:60:1" + "src": "10381:60:1" }, { "expression": { "arguments": [ { "expression": { - "id": 1164, + "id": 1170, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10495:9:1", + "referencedDeclaration": 1163, + "src": "10504:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1165, + "id": 1171, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10505:5:1", + "memberLocation": "10514:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10495:15:1", + "src": "10504:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12814,27 +12904,27 @@ }, { "expression": { - "id": 1166, + "id": 1172, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10538:9:1", + "referencedDeclaration": 1163, + "src": "10547:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1167, + "id": 1173, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10548:22:1", + "memberLocation": "10557:22:1", "memberName": "borrowCollateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 299, - "src": "10538:32:1", + "src": "10547:32:1", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12848,27 +12938,27 @@ "arguments": [ { "expression": { - "id": 1169, + "id": 1175, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10596:9:1", + "referencedDeclaration": 1163, + "src": "10605:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1170, + "id": 1176, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10606:5:1", + "memberLocation": "10615:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10596:15:1", + "src": "10605:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12882,18 +12972,18 @@ "typeString": "address" } ], - "id": 1168, + "id": 1174, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "10590:5:1", + "src": "10599:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1171, + "id": 1177, "isConstant": false, "isLValue": false, "isPure": false, @@ -12902,29 +12992,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10590:22:1", + "src": "10599:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1172, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10613:8:1", + "memberLocation": "10622:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 619, - "src": "10590:31:1", + "src": "10599:31:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 1173, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, @@ -12933,7 +13023,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10590:33:1", + "src": "10599:33:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12942,27 +13032,27 @@ }, { "expression": { - "id": 1174, + "id": 1180, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10660:9:1", + "referencedDeclaration": 1163, + "src": "10669:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1175, + "id": 1181, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10670:25:1", + "memberLocation": "10679:25:1", "memberName": "liquidateCollateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 301, - "src": "10660:35:1", + "src": "10669:35:1", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -12970,27 +13060,27 @@ }, { "expression": { - "id": 1176, + "id": 1182, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10724:9:1", + "referencedDeclaration": 1163, + "src": "10733:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1177, + "id": 1183, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10734:17:1", + "memberLocation": "10743:17:1", "memberName": "liquidationFactor", "nodeType": "MemberAccess", "referencedDeclaration": 303, - "src": "10724:27:1", + "src": "10733:27:1", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" @@ -13004,27 +13094,27 @@ "arguments": [ { "expression": { - "id": 1179, + "id": 1185, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10773:9:1", + "referencedDeclaration": 1163, + "src": "10782:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1180, + "id": 1186, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10783:5:1", + "memberLocation": "10792:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10773:15:1", + "src": "10782:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13038,18 +13128,18 @@ "typeString": "address" } ], - "id": 1178, + "id": 1184, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "10767:5:1", + "src": "10776:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1181, + "id": 1187, "isConstant": false, "isLValue": false, "isPure": false, @@ -13058,29 +13148,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10767:22:1", + "src": "10776:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1182, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10790:4:1", + "memberLocation": "10799:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 624, - "src": "10767:27:1", + "src": "10776:27:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" } }, - "id": 1183, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": false, @@ -13089,7 +13179,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10767:29:1", + "src": "10776:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -13100,27 +13190,27 @@ "arguments": [ { "expression": { - "id": 1186, + "id": 1192, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10828:9:1", + "referencedDeclaration": 1163, + "src": "10837:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1187, + "id": 1193, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10838:9:1", + "memberLocation": "10847:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 295, - "src": "10828:19:1", + "src": "10837:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13135,33 +13225,33 @@ } ], "expression": { - "id": 1184, + "id": 1190, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "10813:5:1", + "referencedDeclaration": 1151, + "src": "10822:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1185, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10819:8:1", + "memberLocation": "10828:8:1", "memberName": "getPrice", "nodeType": "MemberAccess", "referencedDeclaration": 367, - "src": "10813:14:1", + "src": "10822:14:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1188, + "id": 1194, "isConstant": false, "isLValue": false, "isPure": false, @@ -13170,7 +13260,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10813:35:1", + "src": "10822:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13179,27 +13269,27 @@ }, { "expression": { - "id": 1189, + "id": 1195, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10869:9:1", + "referencedDeclaration": 1163, + "src": "10878:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1190, + "id": 1196, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10879:9:1", + "memberLocation": "10888:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 295, - "src": "10869:19:1", + "src": "10878:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13207,27 +13297,27 @@ }, { "expression": { - "id": 1191, + "id": 1197, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10909:9:1", + "referencedDeclaration": 1163, + "src": "10918:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1192, + "id": 1198, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10919:9:1", + "memberLocation": "10928:9:1", "memberName": "supplyCap", "nodeType": "MemberAccess", "referencedDeclaration": 305, - "src": "10909:19:1", + "src": "10918:19:1", "typeDescriptions": { "typeIdentifier": "t_uint128", "typeString": "uint128" @@ -13241,27 +13331,27 @@ "arguments": [ { "expression": { - "id": 1194, + "id": 1200, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "10952:9:1", + "referencedDeclaration": 1163, + "src": "10961:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1195, + "id": 1201, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "10962:5:1", + "memberLocation": "10971:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "10952:15:1", + "src": "10961:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13275,18 +13365,18 @@ "typeString": "address" } ], - "id": 1193, + "id": 1199, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "10946:5:1", + "src": "10955:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1196, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -13295,29 +13385,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10946:22:1", + "src": "10955:22:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1197, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "10969:6:1", + "memberLocation": "10978:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 629, - "src": "10946:29:1", + "src": "10955:29:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view external returns (string memory)" } }, - "id": 1198, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, @@ -13326,7 +13416,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10946:31:1", + "src": "10955:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -13337,27 +13427,27 @@ "arguments": [ { "expression": { - "id": 1201, + "id": 1207, "name": "assetInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1157, - "src": "11023:9:1", + "referencedDeclaration": 1163, + "src": "11032:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_AssetInfo_$306_memory_ptr", "typeString": "struct Comet.AssetInfo memory" } }, - "id": 1202, + "id": 1208, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11033:5:1", + "memberLocation": "11042:5:1", "memberName": "asset", "nodeType": "MemberAccess", "referencedDeclaration": 293, - "src": "11023:15:1", + "src": "11032:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13372,33 +13462,33 @@ } ], "expression": { - "id": 1199, + "id": 1205, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1145, - "src": "11000:5:1", + "referencedDeclaration": 1151, + "src": "11009:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1200, + "id": 1206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11006:16:1", + "memberLocation": "11015:16:1", "memberName": "totalsCollateral", "nodeType": "MemberAccess", "referencedDeclaration": 588, - "src": "11000:22:1", + "src": "11009:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1203, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, @@ -13407,7 +13497,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11000:39:1", + "src": "11009:39:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13462,35 +13552,35 @@ "typeString": "uint256" } ], - "id": 1163, + "id": 1169, "name": "CollateralAsset", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 702, - "src": "10452:15:1", + "src": "10461:15:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CollateralAsset_$702_storage_ptr_$", "typeString": "type(struct CometQuery.CollateralAsset storage pointer)" } }, - "id": 1204, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "10478:15:1", - "10520:16:1", - "10580:8:1", - "10633:25:1", - "10705:17:1", - "10761:4:1", - "10806:5:1", - "10858:9:1", - "10898:9:1", - "10938:6:1", - "10987:11:1" + "10487:15:1", + "10529:16:1", + "10589:8:1", + "10642:25:1", + "10714:17:1", + "10770:4:1", + "10815:5:1", + "10867:9:1", + "10907:9:1", + "10947:6:1", + "10996:11:1" ], "names": [ "collateralAsset", @@ -13506,17 +13596,17 @@ "totalSupply" ], "nodeType": "FunctionCall", - "src": "10452:596:1", + "src": "10461:596:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "functionReturnParameters": 1152, - "id": 1205, + "functionReturnParameters": 1158, + "id": 1211, "nodeType": "Return", - "src": "10439:609:1" + "src": "10448:609:1" } ] }, @@ -13525,20 +13615,20 @@ "kind": "function", "modifiers": [], "name": "collateralInfo", - "nameLocation": "10280:14:1", + "nameLocation": "10289:14:1", "parameters": { - "id": 1148, + "id": 1154, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1145, + "id": 1151, "mutability": "mutable", "name": "comet", - "nameLocation": "10301:5:1", + "nameLocation": "10310:5:1", "nodeType": "VariableDeclaration", - "scope": 1207, - "src": "10295:11:1", + "scope": 1213, + "src": "10304:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13546,20 +13636,20 @@ "typeString": "contract Comet" }, "typeName": { - "id": 1144, + "id": 1150, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1143, + "id": 1149, "name": "Comet", "nameLocations": [ - "10295:5:1" + "10304:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "10295:5:1" + "src": "10304:5:1" }, "referencedDeclaration": 598, - "src": "10295:5:1", + "src": "10304:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -13569,13 +13659,13 @@ }, { "constant": false, - "id": 1147, + "id": 1153, "mutability": "mutable", "name": "index", - "nameLocation": "10314:5:1", + "nameLocation": "10323:5:1", "nodeType": "VariableDeclaration", - "scope": 1207, - "src": "10308:11:1", + "scope": 1213, + "src": "10317:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13583,10 +13673,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1146, + "id": 1152, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10308:5:1", + "src": "10317:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13595,21 +13685,21 @@ "visibility": "internal" } ], - "src": "10294:26:1" + "src": "10303:26:1" }, "returnParameters": { - "id": 1152, + "id": 1158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1151, + "id": 1157, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1207, - "src": "10342:22:1", + "scope": 1213, + "src": "10351:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13617,20 +13707,20 @@ "typeString": "struct CometQuery.CollateralAsset" }, "typeName": { - "id": 1150, + "id": 1156, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1149, + "id": 1155, "name": "CollateralAsset", "nameLocations": [ - "10342:15:1" + "10351:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "10342:15:1" + "src": "10351:15:1" }, "referencedDeclaration": 702, - "src": "10342:15:1", + "src": "10351:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -13639,48 +13729,48 @@ "visibility": "internal" } ], - "src": "10341:24:1" + "src": "10350:24:1" }, - "scope": 1272, + "scope": 1278, "stateMutability": "view", "virtual": false, "visibility": "public" }, { - "id": 1271, + "id": 1277, "nodeType": "FunctionDefinition", - "src": "11057:925:1", + "src": "11066:925:1", "body": { - "id": 1270, + "id": 1276, "nodeType": "Block", - "src": "11237:745:1", + "src": "11246:745:1", "statements": [ { "expression": { "arguments": [ { "expression": { - "id": 1222, + "id": 1228, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11315:5:1", + "referencedDeclaration": 1219, + "src": "11324:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1223, + "id": 1229, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11321:15:1", + "memberLocation": "11330:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11315:21:1", + "src": "11324:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13689,12 +13779,12 @@ { "arguments": [ { - "id": 1229, + "id": 1235, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1215, - "src": "11396:7:1", + "referencedDeclaration": 1221, + "src": "11405:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -13703,12 +13793,12 @@ { "arguments": [ { - "id": 1232, + "id": 1238, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "11413:5:1", + "referencedDeclaration": 1216, + "src": "11422:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -13722,26 +13812,26 @@ "typeString": "contract Comet" } ], - "id": 1231, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11405:7:1", + "src": "11414:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1230, + "id": 1236, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11405:7:1", + "src": "11414:7:1", "typeDescriptions": {} } }, - "id": 1233, + "id": 1239, "isConstant": false, "isLValue": false, "isPure": false, @@ -13750,7 +13840,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11405:14:1", + "src": "11414:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -13773,27 +13863,27 @@ "arguments": [ { "expression": { - "id": 1225, + "id": 1231, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11363:5:1", + "referencedDeclaration": 1219, + "src": "11372:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1226, + "id": 1232, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11369:15:1", + "memberLocation": "11378:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11363:21:1", + "src": "11372:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13807,18 +13897,18 @@ "typeString": "address" } ], - "id": 1224, + "id": 1230, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "11357:5:1", + "src": "11366:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1227, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, @@ -13827,29 +13917,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11357:28:1", + "src": "11366:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1228, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11386:9:1", + "memberLocation": "11395:9:1", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 607, - "src": "11357:38:1", + "src": "11366:38:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1234, + "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, @@ -13858,7 +13948,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11357:63:1", + "src": "11366:63:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13868,12 +13958,12 @@ { "arguments": [ { - "id": 1237, + "id": 1243, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1215, - "src": "11465:7:1", + "referencedDeclaration": 1221, + "src": "11474:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -13881,27 +13971,27 @@ }, { "expression": { - "id": 1238, + "id": 1244, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11474:5:1", + "referencedDeclaration": 1219, + "src": "11483:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1239, + "id": 1245, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11480:15:1", + "memberLocation": "11489:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11474:21:1", + "src": "11483:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13920,33 +14010,33 @@ } ], "expression": { - "id": 1235, + "id": 1241, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "11439:5:1", + "referencedDeclaration": 1216, + "src": "11448:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1236, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11445:19:1", + "memberLocation": "11454:19:1", "memberName": "collateralBalanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 543, - "src": "11439:25:1", + "src": "11448:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint128_$", "typeString": "function (address,address) view external returns (uint128)" } }, - "id": 1240, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -13955,7 +14045,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11439:57:1", + "src": "11448:57:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint128", @@ -13964,27 +14054,27 @@ }, { "expression": { - "id": 1241, + "id": 1247, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11524:5:1", + "referencedDeclaration": 1219, + "src": "11533:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1242, + "id": 1248, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11530:16:1", + "memberLocation": "11539:16:1", "memberName": "collateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 683, - "src": "11524:22:1", + "src": "11533:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13992,27 +14082,27 @@ }, { "expression": { - "id": 1243, + "id": 1249, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11566:5:1", + "referencedDeclaration": 1219, + "src": "11575:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1244, + "id": 1250, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11572:8:1", + "memberLocation": "11581:8:1", "memberName": "decimals", "nodeType": "MemberAccess", "referencedDeclaration": 685, - "src": "11566:14:1", + "src": "11575:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14020,27 +14110,27 @@ }, { "expression": { - "id": 1245, + "id": 1251, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11617:5:1", + "referencedDeclaration": 1219, + "src": "11626:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1246, + "id": 1252, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11623:25:1", + "memberLocation": "11632:25:1", "memberName": "liquidateCollateralFactor", "nodeType": "MemberAccess", "referencedDeclaration": 689, - "src": "11617:31:1", + "src": "11626:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14048,27 +14138,27 @@ }, { "expression": { - "id": 1247, + "id": 1253, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11677:5:1", + "referencedDeclaration": 1219, + "src": "11686:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1248, + "id": 1254, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11683:17:1", + "memberLocation": "11692:17:1", "memberName": "liquidationFactor", "nodeType": "MemberAccess", "referencedDeclaration": 691, - "src": "11677:23:1", + "src": "11686:23:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14076,27 +14166,27 @@ }, { "expression": { - "id": 1249, + "id": 1255, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11716:5:1", + "referencedDeclaration": 1219, + "src": "11725:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1250, + "id": 1256, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11722:4:1", + "memberLocation": "11731:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 687, - "src": "11716:10:1", + "src": "11725:10:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -14104,27 +14194,27 @@ }, { "expression": { - "id": 1251, + "id": 1257, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11743:5:1", + "referencedDeclaration": 1219, + "src": "11752:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1252, + "id": 1258, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11749:5:1", + "memberLocation": "11758:5:1", "memberName": "price", "nodeType": "MemberAccess", "referencedDeclaration": 693, - "src": "11743:11:1", + "src": "11752:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14132,27 +14222,27 @@ }, { "expression": { - "id": 1253, + "id": 1259, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11775:5:1", + "referencedDeclaration": 1219, + "src": "11784:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1254, + "id": 1260, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11781:9:1", + "memberLocation": "11790:9:1", "memberName": "priceFeed", "nodeType": "MemberAccess", "referencedDeclaration": 695, - "src": "11775:15:1", + "src": "11784:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14160,27 +14250,27 @@ }, { "expression": { - "id": 1255, + "id": 1261, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11811:5:1", + "referencedDeclaration": 1219, + "src": "11820:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1256, + "id": 1262, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11817:9:1", + "memberLocation": "11826:9:1", "memberName": "supplyCap", "nodeType": "MemberAccess", "referencedDeclaration": 697, - "src": "11811:15:1", + "src": "11820:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14188,27 +14278,27 @@ }, { "expression": { - "id": 1257, + "id": 1263, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11844:5:1", + "referencedDeclaration": 1219, + "src": "11853:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1258, + "id": 1264, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11850:6:1", + "memberLocation": "11859:6:1", "memberName": "symbol", "nodeType": "MemberAccess", "referencedDeclaration": 699, - "src": "11844:12:1", + "src": "11853:12:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -14216,27 +14306,27 @@ }, { "expression": { - "id": 1259, + "id": 1265, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11879:5:1", + "referencedDeclaration": 1219, + "src": "11888:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1260, + "id": 1266, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11885:11:1", + "memberLocation": "11894:11:1", "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 701, - "src": "11879:17:1", + "src": "11888:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14245,12 +14335,12 @@ { "arguments": [ { - "id": 1266, + "id": 1272, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1215, - "src": "11960:7:1", + "referencedDeclaration": 1221, + "src": "11969:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -14268,27 +14358,27 @@ "arguments": [ { "expression": { - "id": 1262, + "id": 1268, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "11927:5:1", + "referencedDeclaration": 1219, + "src": "11936:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_memory_ptr", "typeString": "struct CometQuery.CollateralAsset memory" } }, - "id": 1263, + "id": 1269, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "11933:15:1", + "memberLocation": "11942:15:1", "memberName": "collateralAsset", "nodeType": "MemberAccess", "referencedDeclaration": 681, - "src": "11927:21:1", + "src": "11936:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14302,18 +14392,18 @@ "typeString": "address" } ], - "id": 1261, + "id": 1267, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 630, - "src": "11921:5:1", + "src": "11930:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC20_$630_$", "typeString": "type(contract ERC20)" } }, - "id": 1264, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -14322,29 +14412,29 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11921:28:1", + "src": "11930:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20_$630", "typeString": "contract ERC20" } }, - "id": 1265, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "11950:9:1", + "memberLocation": "11959:9:1", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 614, - "src": "11921:38:1", + "src": "11930:38:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1267, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, @@ -14353,7 +14443,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11921:47:1", + "src": "11930:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14420,38 +14510,38 @@ "typeString": "uint256" } ], - "id": 1221, + "id": 1227, "name": "CollateralAssetWithAccountState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, - "src": "11256:31:1", + "src": "11265:31:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_CollateralAssetWithAccountState_$731_storage_ptr_$", "typeString": "type(struct CometQuery.CollateralAssetWithAccountState storage pointer)" } }, - "id": 1268, + "id": 1274, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "11298:15:1", - "11346:9:1", - "11430:7:1", - "11506:16:1", - "11556:8:1", - "11590:25:1", - "11658:17:1", - "11710:4:1", - "11736:5:1", - "11764:9:1", - "11800:9:1", - "11836:6:1", - "11866:11:1", - "11906:13:1" + "11307:15:1", + "11355:9:1", + "11439:7:1", + "11515:16:1", + "11565:8:1", + "11599:25:1", + "11667:17:1", + "11719:4:1", + "11745:5:1", + "11773:9:1", + "11809:9:1", + "11845:6:1", + "11875:11:1", + "11915:13:1" ], "names": [ "collateralAsset", @@ -14470,17 +14560,17 @@ "walletBalance" ], "nodeType": "FunctionCall", - "src": "11256:721:1", + "src": "11265:721:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_memory_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState memory" } }, - "functionReturnParameters": 1220, - "id": 1269, + "functionReturnParameters": 1226, + "id": 1275, "nodeType": "Return", - "src": "11243:734:1" + "src": "11252:734:1" } ] }, @@ -14489,20 +14579,20 @@ "kind": "function", "modifiers": [], "name": "collateralInfoWithAccount", - "nameLocation": "11066:25:1", + "nameLocation": "11075:25:1", "parameters": { - "id": 1216, + "id": 1222, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1210, + "id": 1216, "mutability": "mutable", "name": "comet", - "nameLocation": "11103:5:1", + "nameLocation": "11112:5:1", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "11097:11:1", + "scope": 1277, + "src": "11106:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14510,20 +14600,20 @@ "typeString": "contract Comet" }, "typeName": { - "id": 1209, + "id": 1215, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1208, + "id": 1214, "name": "Comet", "nameLocations": [ - "11097:5:1" + "11106:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 598, - "src": "11097:5:1" + "src": "11106:5:1" }, "referencedDeclaration": 598, - "src": "11097:5:1", + "src": "11106:5:1", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" @@ -14533,13 +14623,13 @@ }, { "constant": false, - "id": 1213, + "id": 1219, "mutability": "mutable", "name": "asset", - "nameLocation": "11137:5:1", + "nameLocation": "11146:5:1", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "11114:28:1", + "scope": 1277, + "src": "11123:28:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14547,20 +14637,20 @@ "typeString": "struct CometQuery.CollateralAsset" }, "typeName": { - "id": 1212, + "id": 1218, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1211, + "id": 1217, "name": "CollateralAsset", "nameLocations": [ - "11114:15:1" + "11123:15:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 702, - "src": "11114:15:1" + "src": "11123:15:1" }, "referencedDeclaration": 702, - "src": "11114:15:1", + "src": "11123:15:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAsset_$702_storage_ptr", "typeString": "struct CometQuery.CollateralAsset" @@ -14570,13 +14660,13 @@ }, { "constant": false, - "id": 1215, + "id": 1221, "mutability": "mutable", "name": "account", - "nameLocation": "11164:7:1", + "nameLocation": "11173:7:1", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "11148:23:1", + "scope": 1277, + "src": "11157:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14584,10 +14674,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1214, + "id": 1220, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11148:15:1", + "src": "11157:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -14597,21 +14687,21 @@ "visibility": "internal" } ], - "src": "11091:84:1" + "src": "11100:84:1" }, "returnParameters": { - "id": 1220, + "id": 1226, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1219, + "id": 1225, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "11197:38:1", + "scope": 1277, + "src": "11206:38:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14619,20 +14709,20 @@ "typeString": "struct CometQuery.CollateralAssetWithAccountState" }, "typeName": { - "id": 1218, + "id": 1224, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1217, + "id": 1223, "name": "CollateralAssetWithAccountState", "nameLocations": [ - "11197:31:1" + "11206:31:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 731, - "src": "11197:31:1" + "src": "11206:31:1" }, "referencedDeclaration": 731, - "src": "11197:31:1", + "src": "11206:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_CollateralAssetWithAccountState_$731_storage_ptr", "typeString": "struct CometQuery.CollateralAssetWithAccountState" @@ -14641,9 +14731,9 @@ "visibility": "internal" } ], - "src": "11196:40:1" + "src": "11205:40:1" }, - "scope": 1272, + "scope": 1278, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -14656,11 +14746,11 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 1272 + 1278 ], "name": "CometQuery", "nameLocation": "4161:10:1", - "scope": 1273, + "scope": 1279, "usedErrors": [] } ], diff --git a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json index 681555d..f007e7e 100644 --- a/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json +++ b/web/helpers/Sleuth/out/CompoundV2Query.sol/CompoundV2Query.json @@ -443,9 +443,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -858,9 +858,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -1055,13 +1055,13 @@ } ], "bytecode": { - "object": "0x6080806040523461001657612bae908161001c8239f35b600080fdfe6101c0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b4357806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610fc2565b611698565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a0190611053565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611053565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611493565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610fc2565b6024359060ff821682036101e6576102339161021f91612254565b604051918291602083526020830190611493565b0390f35b346101e6576003196060368201126101e657610251610fc2565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161147f565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113d6565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161147f565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113d6565b6101208401520135610140820152610342610fee565b916125ba565b604051918291602083526020830190611078565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610fc2565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd93369060040161141d565b6103ce611004565b916103d761101a565b93612814565b6103ea60405180926112bc565bf35b346101e65760a03660031901126101e657610405610fc2565b61040d610fd8565b6001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610456611004565b9161045f61101a565b9060405161046c8161130f565b60008152606060208201526040610481612122565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0386165afa90811561094357600091610b01575b506104d16104c5604435600401356115d9565b6040518060805261139a565b6080516004604435013590819052601f19906104ec906115d9565b0160005b818110610ae857505060005b604435600401358110610a7b57604051636eb1769f60e11b81526001600160a01b03808816600483015285166024820152869086602082806044810103816001600160a01b0385165afa91821561094357600092610a47575b5061055e612122565b5061056881611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829086165afa90811561094357600091610a15575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829087165afa908115610943576000916109e3575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152858116602483015290911690602081604481855afa801561094357600060a0526109b0575b50828281031161099a57869285519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610966575b506106b36040518060c05261132a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a08201515191610713836115d9565b92610721604051948561139a565b808452610730601f19916115d9565b0160005b81811061094f57505060005b60a0820151805160ff83161015610794579061076e8761076761078f9460ff851690611655565b51866125ba565b61077b60ff831687611655565b5261078960ff821686611655565b50611644565b610740565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b03808c166004830152600060248301529098949792959194928b92918a916044918391165afa9182156109435760009261090e575b6020985060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e6108378161137e565b60c0518152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519161088d8361130f565b82526020820190608051825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108ed578480610233888751601f1984830301606085015261112f565b9091946020610100826109036001948a516112bc565b0196019291016108cd565b91506020883d60201161093b575b816109296020938361139a565b810103126101e65760209751916107f4565b3d915061091c565b6040513d6000823e3d90fd5b60209061095a6121d6565b82828801015201610734565b909a506020813d602011610992575b816109826020938361139a565b810103126101e65751998f6106a3565b3d9150610975565b634e487b7160e01b600052601160045260246000fd5b6020813d6020116109db575b816109c96020938361139a565b810103126101e6575160a05287610626565b3d91506109bc565b90506020813d602011610a0d575b816109fe6020938361139a565b810103126101e65751866105e0565b3d91506109f1565b90506020813d602011610a3f575b81610a306020938361139a565b810103126101e65751856105a5565b3d9150610a23565b9091506020813d602011610a73575b81610a636020938361139a565b810103126101e657519083610555565b3d9150610a56565b60621960443536030160248260051b60443501013512156101e657610abd8487610ab6366024808760051b604435010135604435010161141d565b8587612814565b610ac982608051611655565b52610ad681608051611655565b50600019811461099a576001016104fc565b602090610af36127d6565b8282608051010152016104f0565b90506020813d602011610b3b575b81610b1c6020938361139a565b810103126101e657516001600160a01b03811681036101e657856104b2565b3d9150610b0f565b346101e65760603660031901126101e657610b5c610fc2565b610b64610fd8565b90610b6d610fee565b610b75612122565b50610b7f82611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561094357600093610f8e575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561094357600094610f5a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561094357600091610f28575b50828281031161099a57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610ef4575b5060206040519e8f90610cd28261132a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610d17846115d9565b93610d25604051958661139a565b808552610d34601f19916115d9565b0160005b818110610edd57505060005b60a0860151805160ff83161015610d925790610d7288610d6b610d8d9460ff851690611655565b51876125ba565b610d7f60ff831688611655565b5261078960ff821687611655565b610d44565b610dea8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561094357600092610ea7575b610233995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610e4d8261137e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061112f565b91506020893d602011610ed5575b81610ec26020938361139a565b810103126101e657610233985191610e06565b3d9150610eb5565b602090610ee86121d6565b82828901015201610d38565b909a506020813d602011610f20575b81610f106020938361139a565b810103126101e657519938610cc0565b3d9150610f03565b90506020813d602011610f52575b81610f436020938361139a565b810103126101e6575188610c43565b3d9150610f36565b9093506020813d602011610f86575b81610f766020938361139a565b810103126101e657519286610bfd565b3d9150610f69565b9092506020813d602011610fba575b81610faa6020938361139a565b810103126101e657519185610bbf565b3d9150610f9d565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b8381106110435750506000910152565b8181015183820152602001611033565b9060209161106c81518092818552858086019101611030565b601f01601f1916010190565b9061111660018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526110ca60a08501516101c08060a0870152850190611053565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611053565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c0810151916111a16101609384610280880152610320870190611053565b9060e0830151166102a0860152610100808301516102c08701526111d961012092838501516101bf19898303016102e08a0152611053565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061128d5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806112ac8f93600194601f1987830301885251611078565b9e0193019301919493929061123e565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ed826113bb565b926113fb604051948561139a565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261147a92016113d6565b910152565b35906001600160a01b03821682036101e657565b9061151a60018060a01b0380845116835260208401516020840152604084015160408401526114d16060850151610160806060870152850190611053565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611053565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e65780516115aa816113bb565b926115b8604051948561139a565b818452602082840101116101e6576115d69160208085019101611030565b90565b6001600160401b03811161035c5760051b60200190565b604051906115fd8261132a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff811461099a5760010190565b80518210156116695760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e1338090806000190482118115151661099a570290565b60e05260006101606040516116ac81611346565b6040516116b881611362565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa8015610943576000610120526120e6575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa918215610943576000926120aa575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156109435760009261206e575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156109435760009361203a575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa90811561094357600091612008575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa94851561094357600095611fd4575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa91821561094357600092611fa0575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa94851561094357600095611f6c575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa98891561094357600099611f38575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa93841561094357600094611f04575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561094357600093611ed0575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa94851561094357600095611e04575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa801561094357600061010052611dc8575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156109435760009c611d8c575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561094357600094611d6f575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561094357600061014052611d3b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561094357600092611d16575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561094357600095611ce2575b506040516101a08181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa9061018091808352156109435760009151611caa575b611b206040518061016052611362565b60018060a01b0316610160515260206101605101526101405160406101605101526060610160510152608061016051015260018060a01b031660a061016051015260c061016051015260e0610160510152611b8060ff61012051166115d9565b97611b8e604051998a61139a565b60ff61012051168952601f19611ba960ff61012051166115d9565b0160005b818110611c9257505060005b60ff610120511660ff82161015611bfa5780611bda611bf59260e051612254565b611be760ff83168d611655565b5261078960ff82168c611655565b611bb9565b50919395979092949698611c246001600160401b03611c1d81610100511661167f565b921661167f565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c4e8c611346565b610160518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611ca06115f0565b9201015201611bad565b905060203d602011611cdb575b611cc4816101a05161139a565b60206101a0518092810103126101e6575190611b10565b503d611cb7565b9094506020813d602011611d0e575b81611cfe6020938361139a565b810103126101e657519338611ac1565b3d9150611cf1565b611d349192503d806000833e611d2c818361139a565b810190611578565b9038611a81565b6020813d602011611d67575b81611d546020938361139a565b810103126101e657516101405238611a51565b3d9150611d47565b611d859194503d806000833e611d2c818361139a565b9238611a20565b909b506020813d602011611dc0575b81611da86020938361139a565b810103126101e657611db99061154a565b9a386119f0565b3d9150611d9b565b6020813d602011611dfc575b81611de16020938361139a565b810103126101e657611df29061154a565b61010052386119ba565b3d9150611dd4565b909450610100813d61010011611ec8575b81611e23610100938361139a565b810103126101e65760405190611e3882611362565b611e418161154a565b8252611e4f6020820161154a565b6020830152611e606040820161154a565b6040830152611e716060820161154a565b6060830152611e826080820161155e565b6080830152611e9360a0820161155e565b60a083015260c081015164ffffffffff811681036101e65760c0830152611ebc9060e001611528565b60e0820152933861197c565b3d9150611e15565b9092506020813d602011611efc575b81611eec6020938361139a565b810103126101e65751913861194a565b3d9150611edf565b9093506020813d602011611f30575b81611f206020938361139a565b810103126101e657519238611919565b3d9150611f13565b9098506020813d602011611f64575b81611f546020938361139a565b810103126101e6575197386118e8565b3d9150611f47565b9094506020813d602011611f98575b81611f886020938361139a565b810103126101e6575193386118b7565b3d9150611f7b565b9091506020813d602011611fcc575b81611fbc6020938361139a565b810103126101e657519038611886565b3d9150611faf565b9094506020813d602011612000575b81611ff06020938361139a565b810103126101e657519338611855565b3d9150611fe3565b90506020813d602011612032575b816120236020938361139a565b810103126101e6575138611824565b3d9150612016565b9092506020813d602011612066575b816120566020938361139a565b810103126101e6575191386117ef565b3d9150612049565b9091506020813d6020116120a2575b8161208a6020938361139a565b810103126101e65761209b90611536565b90386117be565b3d915061207d565b9091506020813d6020116120de575b816120c66020938361139a565b810103126101e6576120d790611536565b903861178d565b3d91506120b9565b6020813d60201161211a575b816120ff6020938361139a565b810103126101e65761211090611528565b610120523861175c565b3d91506120f2565b6040519061212f8261137e565b6040516101a08361213f8361132a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b604051906121e38261137e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b9061225d6115f0565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561246357600093612501575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124f6576000926124c6575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561243957908c979695949392916000956124ab575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa9889156124a057908c9160009a61246e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156124635760009e612444575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124395760009d612407575b5082519d8e6123d58161132a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311612432575b61241e818361139a565b8101031261242f5750519b386123c7565b80fd5b503d612414565b83513d6000823e3d90fd5b61245b908493929f3d8091833e611d2c818361139a565b9d9091612397565b85513d6000823e3d90fd5b9150988282813d8311612499575b612486818361139a565b8101031261242f57508b90519838612358565b503d61247c565b84513d6000823e3d90fd5b6124bf91953d8091833e611d2c818361139a565b9338612324565b90918582813d83116124ef575b6124dd818361139a565b8101031261242f5750519060046122e1565b503d6124d3565b50513d6000823e3d90fd5b90928382813d83116125b3575b612518818361139a565b8101031261242f57506125a760e086519261253284611362565b61253b81611528565b845261254960208201611536565b6020850152612559888201611536565b888501526125696060820161154a565b606085015261257a6080820161154a565b608085015261258b60a0820161154a565b60a085015261259c60c0820161154a565b60c085015201612240565b60e0820152913861229e565b503d61250e565b91906125c46121d6565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa918215610943576000926127a1575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561094357600091612767575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109435760009d612733575b50604051809e6126df8261137e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161275f575b8161274e6020938361139a565b8101031261242f5750519b386126d0565b3d9150612741565b906020823d602011612799575b816127816020938361139a565b8101031261242f575061279390612240565b3861264f565b3d9150612774565b90916020823d6020116127ce575b816127bc6020938361139a565b8101031261242f57505190602061260b565b3d91506127af565b604051906127e382611362565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946128216127d6565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b6d578a918a91600098612b27575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561243957600092612af8575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa9485156124a057600095612ac4575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561246357600097612a90575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f1978815612463578c8b9c9d9e60009a612a43575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a385760009b612a09575b5091836129959c9d9e9281809501519388519e8f9586948593631fc58c3360e31b85528401526024830190611053565b0392165afa988915612439576000996129da575b508251996129b68b611362565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d8311612a02575b6129f1818361139a565b8101031261242f57505197386129a9565b503d6129e7565b909a8482813d8311612a31575b612a20818361139a565b8101031261242f5750519983612965565b503d612a16565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a89575b612a67818361139a565b8101031261242f5750918c97959391858c60009c9b999795519a91509b61293d565b503d612a5d565b969c8381813d8311612abd575b612aa7818361139a565b81010312612ab9578c9d50519661290a565b8d80fd5b503d612a9d565b949b8281813d8311612af1575b612adb818361139a565b81010312612aed578b9c5051946128db565b8c80fd5b503d612ad1565b90918282813d8311612b20575b612b0f818361139a565b8101031261242f57505190386128ad565b503d612b05565b8093508480929993503d8311612b66575b612b42818361139a565b8101031261242f5781518015150361242f5750602001519489908990612899612865565b503d612b38565b82513d6000823e3d90fdfea264697066735822122022d390f589dc4d3beacef35e29ed05e0724e9833a837be17a0ed8a259eec002664736f6c63430008100033", + "object": "0x6080806040523461001657612bce908161001c8239f35b600080fdfe6101c0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b5357806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610fe2565b6116b8565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a0190611073565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611073565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d516114b3565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610fe2565b6024359060ff821682036101e6576102339161021f91612274565b6040519182916020835260208301906114b3565b0390f35b346101e6576003196060368201126101e657610251610fe2565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161149f565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113f6565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161149f565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113f6565b610120840152013561014082015261034261100e565b916125da565b604051918291602083526020830190611098565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610fe2565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd93369060040161143d565b6103ce611024565b916103d761103a565b93612834565b6103ea60405180926112dc565bf35b346101e65760a03660031901126101e657610405610fe2565b61040d610ff8565b6001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610456611024565b9161045f61103a565b9060405161046c8161132f565b60008152606060208201526040610481612142565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0386165afa90811561095357600091610b11575b506104d16104c5604435600401356115f9565b6040518060c0526113ba565b60c0516004604435013590819052601f19906104ec906115f9565b0160005b818110610af857505060005b604435600401358110610a8b57604051636eb1769f60e11b81526001600160a01b03808816600483015285166024820152869086602082806044810103816001600160a01b0385165afa91821561095357600092610a57575b5061055e612142565b50610568816116b8565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829086165afa90811561095357600091610a25575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829087165afa908115610953576000916109f3575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152858116602483015290911690602081604481855afa801561095357600060a0526109c0575b506000821283838103128116908484810313901516176109aa57869285519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109535760009b610976575b506106c36040518060805261134a565b6080515260a0516020608051015203604060805101526060608051015260808051015260a0608051015260c0608051015260e0608051015261010060805101526101206080510152610140608051015260a08201515191610723836115f9565b9261073160405194856113ba565b808452610740601f19916115f9565b0160005b81811061095f57505060005b60a0820151805160ff831610156107a4579061077e8761077761079f9460ff851690611675565b51866125da565b61078b60ff831687611675565b5261079960ff821686611675565b50611664565b610750565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b03808c166004830152600060248301529098949792959194928b92918a916044918391165afa9182156109535760009261091e575b6020985060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e6108478161139e565b6080518152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519161089d8361132f565b8252602082019060c051825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108fd578480610233888751601f1984830301606085015261114f565b9091946020610100826109136001948a516112dc565b0196019291016108dd565b91506020883d60201161094b575b81610939602093836113ba565b810103126101e6576020975191610804565b3d915061092c565b6040513d6000823e3d90fd5b60209061096a6121f6565b82828801015201610744565b909a506020813d6020116109a2575b81610992602093836113ba565b810103126101e65751998f6106b3565b3d9150610985565b634e487b7160e01b600052601160045260246000fd5b6020813d6020116109eb575b816109d9602093836113ba565b810103126101e6575160a05287610626565b3d91506109cc565b90506020813d602011610a1d575b81610a0e602093836113ba565b810103126101e65751866105e0565b3d9150610a01565b90506020813d602011610a4f575b81610a40602093836113ba565b810103126101e65751856105a5565b3d9150610a33565b9091506020813d602011610a83575b81610a73602093836113ba565b810103126101e657519083610555565b3d9150610a66565b60621960443536030160248260051b60443501013512156101e657610acd8487610ac6366024808760051b604435010135604435010161143d565b8587612834565b610ad98260c051611675565b52610ae68160c051611675565b5060001981146109aa576001016104fc565b602090610b036127f6565b828260c051010152016104f0565b90506020813d602011610b4b575b81610b2c602093836113ba565b810103126101e657516001600160a01b03811681036101e657856104b2565b3d9150610b1f565b346101e65760603660031901126101e657610b6c610fe2565b610b74610ff8565b90610b7d61100e565b610b85612142565b50610b8f826116b8565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561095357600093610fae575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561095357600094610f7a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561095357600091610f48575b506000821283838103128116908484810313901516176109aa57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109535760009b610f14575b5060206040519e8f90610cf28261134a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610d37846115f9565b93610d4560405195866113ba565b808552610d54601f19916115f9565b0160005b818110610efd57505060005b60a0860151805160ff83161015610db25790610d9288610d8b610dad9460ff851690611675565b51876125da565b610d9f60ff831688611675565b5261079960ff821687611675565b610d64565b610e0a8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561095357600092610ec7575b610233995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610e6d8261139e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061114f565b91506020893d602011610ef5575b81610ee2602093836113ba565b810103126101e657610233985191610e26565b3d9150610ed5565b602090610f086121f6565b82828901015201610d58565b909a506020813d602011610f40575b81610f30602093836113ba565b810103126101e657519938610ce0565b3d9150610f23565b90506020813d602011610f72575b81610f63602093836113ba565b810103126101e6575188610c53565b3d9150610f56565b9093506020813d602011610fa6575b81610f96602093836113ba565b810103126101e657519286610c0d565b3d9150610f89565b9092506020813d602011610fda575b81610fca602093836113ba565b810103126101e657519185610bcf565b3d9150610fbd565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b8381106110635750506000910152565b8181015183820152602001611053565b9060209161108c81518092818552858086019101611050565b601f01601f1916010190565b9061113660018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526110ea60a08501516101c08060a0870152850190611073565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611073565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c0810151916111c16101609384610280880152610320870190611073565b9060e0830151166102a0860152610100808301516102c08701526111f961012092838501516101bf19898303016102e08a0152611073565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106112ad5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806112cc8f93600194601f1987830301885251611098565b9e0193019301919493929061125e565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e65780359061140d826113db565b9261141b60405194856113ba565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261149a92016113f6565b910152565b35906001600160a01b03821682036101e657565b9061153a60018060a01b0380845116835260208401516020840152604084015160408401526114f16060850151610160806060870152850190611073565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611073565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e65780516115ca816113db565b926115d860405194856113ba565b818452602082840101116101e6576115f69160208085019101611050565b90565b6001600160401b03811161035c5760051b60200190565b6040519061161d8261134a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109aa5760010190565b80518210156116895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109aa570290565b60e05260006101606040516116cc81611366565b6040516116d881611382565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa801561095357600061012052612106575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa918215610953576000926120ca575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156109535760009261208e575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156109535760009361205a575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa90811561095357600091612028575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa94851561095357600095611ff4575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa91821561095357600092611fc0575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa94851561095357600095611f8c575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa98891561095357600099611f58575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa93841561095357600094611f24575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561095357600093611ef0575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa94851561095357600095611e24575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa801561095357600061010052611de8575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156109535760009c611dac575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561095357600094611d8f575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561095357600061014052611d5b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561095357600092611d36575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561095357600095611d02575b506040516101808181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa8061016052156109535760009061016051611cca575b611b40604051806101a052611382565b60018060a01b03166101a0515260206101a05101526101405160406101a051015260606101a051015260806101a051015260018060a01b031660a06101a051015260c06101a051015260e06101a0510152611ba060ff61012051166115f9565b97611bae604051998a6113ba565b60ff61012051168952601f19611bc960ff61012051166115f9565b0160005b818110611cb257505060005b60ff610120511660ff82161015611c1a5780611bfa611c159260e051612274565b611c0760ff83168d611675565b5261079960ff82168c611675565b611bd9565b50919395979092949698611c446001600160401b03611c3d81610100511661169f565b921661169f565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c6e8c611366565b6101a0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611cc0611610565b9201015201611bcd565b905060203d602011611cfb575b611ce481610180516113ba565b6020610180518092810103126101e6575190611b30565b503d611cd7565b9094506020813d602011611d2e575b81611d1e602093836113ba565b810103126101e657519338611ae1565b3d9150611d11565b611d549192503d806000833e611d4c81836113ba565b810190611598565b9038611aa1565b6020813d602011611d87575b81611d74602093836113ba565b810103126101e657516101405238611a71565b3d9150611d67565b611da59194503d806000833e611d4c81836113ba565b9238611a40565b909b506020813d602011611de0575b81611dc8602093836113ba565b810103126101e657611dd99061156a565b9a38611a10565b3d9150611dbb565b6020813d602011611e1c575b81611e01602093836113ba565b810103126101e657611e129061156a565b61010052386119da565b3d9150611df4565b909450610100813d61010011611ee8575b81611e4361010093836113ba565b810103126101e65760405190611e5882611382565b611e618161156a565b8252611e6f6020820161156a565b6020830152611e806040820161156a565b6040830152611e916060820161156a565b6060830152611ea26080820161157e565b6080830152611eb360a0820161157e565b60a083015260c081015164ffffffffff811681036101e65760c0830152611edc9060e001611548565b60e0820152933861199c565b3d9150611e35565b9092506020813d602011611f1c575b81611f0c602093836113ba565b810103126101e65751913861196a565b3d9150611eff565b9093506020813d602011611f50575b81611f40602093836113ba565b810103126101e657519238611939565b3d9150611f33565b9098506020813d602011611f84575b81611f74602093836113ba565b810103126101e657519738611908565b3d9150611f67565b9094506020813d602011611fb8575b81611fa8602093836113ba565b810103126101e6575193386118d7565b3d9150611f9b565b9091506020813d602011611fec575b81611fdc602093836113ba565b810103126101e6575190386118a6565b3d9150611fcf565b9094506020813d602011612020575b81612010602093836113ba565b810103126101e657519338611875565b3d9150612003565b90506020813d602011612052575b81612043602093836113ba565b810103126101e6575138611844565b3d9150612036565b9092506020813d602011612086575b81612076602093836113ba565b810103126101e65751913861180f565b3d9150612069565b9091506020813d6020116120c2575b816120aa602093836113ba565b810103126101e6576120bb90611556565b90386117de565b3d915061209d565b9091506020813d6020116120fe575b816120e6602093836113ba565b810103126101e6576120f790611556565b90386117ad565b3d91506120d9565b6020813d60201161213a575b8161211f602093836113ba565b810103126101e65761213090611548565b610120523861177c565b3d9150612112565b6040519061214f8261139e565b6040516101a08361215f8361134a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b604051906122038261139e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b9061227d611610565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561248357600093612521575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa918215612516576000926124e6575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561245957908c979695949392916000956124cb575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa9889156124c057908c9160009a61248e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156124835760009e612464575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124595760009d612427575b5082519d8e6123f58161134a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311612452575b61243e81836113ba565b8101031261244f5750519b386123e7565b80fd5b503d612434565b83513d6000823e3d90fd5b61247b908493929f3d8091833e611d4c81836113ba565b9d90916123b7565b85513d6000823e3d90fd5b9150988282813d83116124b9575b6124a681836113ba565b8101031261244f57508b90519838612378565b503d61249c565b84513d6000823e3d90fd5b6124df91953d8091833e611d4c81836113ba565b9338612344565b90918582813d831161250f575b6124fd81836113ba565b8101031261244f575051906004612301565b503d6124f3565b50513d6000823e3d90fd5b90928382813d83116125d3575b61253881836113ba565b8101031261244f57506125c760e086519261255284611382565b61255b81611548565b845261256960208201611556565b6020850152612579888201611556565b888501526125896060820161156a565b606085015261259a6080820161156a565b60808501526125ab60a0820161156a565b60a08501526125bc60c0820161156a565b60c085015201612260565b60e082015291386122be565b503d61252e565b91906125e46121f6565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa918215610953576000926127c1575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561095357600091612787575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109535760009d612753575b50604051809e6126ff8261139e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161277f575b8161276e602093836113ba565b8101031261244f5750519b386126f0565b3d9150612761565b906020823d6020116127b9575b816127a1602093836113ba565b8101031261244f57506127b390612260565b3861266f565b3d9150612794565b90916020823d6020116127ee575b816127dc602093836113ba565b8101031261244f57505190602061262b565b3d91506127cf565b6040519061280382611382565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946128416127f6565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b8d578a918a91600098612b47575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561245957600092612b18575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa9485156124c057600095612ae4575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561248357600097612ab0575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f1978815612483578c8b9c9d9e60009a612a63575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a585760009b612a29575b5091836129b59c9d9e9281809501519388519e8f9586948593631fc58c3360e31b85528401526024830190611073565b0392165afa988915612459576000996129fa575b508251996129d68b611382565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d8311612a22575b612a1181836113ba565b8101031261244f57505197386129c9565b503d612a07565b909a8482813d8311612a51575b612a4081836113ba565b8101031261244f5750519983612985565b503d612a36565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612aa9575b612a8781836113ba565b8101031261244f5750918c97959391858c60009c9b999795519a91509b61295d565b503d612a7d565b969c8381813d8311612add575b612ac781836113ba565b81010312612ad9578c9d50519661292a565b8d80fd5b503d612abd565b949b8281813d8311612b11575b612afb81836113ba565b81010312612b0d578b9c5051946128fb565b8c80fd5b503d612af1565b90918282813d8311612b40575b612b2f81836113ba565b8101031261244f57505190386128cd565b503d612b25565b8093508480929993503d8311612b86575b612b6281836113ba565b8101031261244f5781518015150361244f57506020015194899089906128b9612885565b503d612b58565b82513d6000823e3d90fdfea2646970667358221220bd68fd7deedde79ab2ae03394bf8b713b2c0b9dc09760c8611521f23129d62ad64736f6c63430008100033", "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6101c0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b4357806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610fc2565b611698565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a0190611053565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611053565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d51611493565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610fc2565b6024359060ff821682036101e6576102339161021f91612254565b604051918291602083526020830190611493565b0390f35b346101e6576003196060368201126101e657610251610fc2565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161147f565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113d6565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161147f565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113d6565b6101208401520135610140820152610342610fee565b916125ba565b604051918291602083526020830190611078565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610fc2565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd93369060040161141d565b6103ce611004565b916103d761101a565b93612814565b6103ea60405180926112bc565bf35b346101e65760a03660031901126101e657610405610fc2565b61040d610fd8565b6001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610456611004565b9161045f61101a565b9060405161046c8161130f565b60008152606060208201526040610481612122565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0386165afa90811561094357600091610b01575b506104d16104c5604435600401356115d9565b6040518060805261139a565b6080516004604435013590819052601f19906104ec906115d9565b0160005b818110610ae857505060005b604435600401358110610a7b57604051636eb1769f60e11b81526001600160a01b03808816600483015285166024820152869086602082806044810103816001600160a01b0385165afa91821561094357600092610a47575b5061055e612122565b5061056881611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829086165afa90811561094357600091610a15575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829087165afa908115610943576000916109e3575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152858116602483015290911690602081604481855afa801561094357600060a0526109b0575b50828281031161099a57869285519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610966575b506106b36040518060c05261132a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a08201515191610713836115d9565b92610721604051948561139a565b808452610730601f19916115d9565b0160005b81811061094f57505060005b60a0820151805160ff83161015610794579061076e8761076761078f9460ff851690611655565b51866125ba565b61077b60ff831687611655565b5261078960ff821686611655565b50611644565b610740565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b03808c166004830152600060248301529098949792959194928b92918a916044918391165afa9182156109435760009261090e575b6020985060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e6108378161137e565b60c0518152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519161088d8361130f565b82526020820190608051825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108ed578480610233888751601f1984830301606085015261112f565b9091946020610100826109036001948a516112bc565b0196019291016108cd565b91506020883d60201161093b575b816109296020938361139a565b810103126101e65760209751916107f4565b3d915061091c565b6040513d6000823e3d90fd5b60209061095a6121d6565b82828801015201610734565b909a506020813d602011610992575b816109826020938361139a565b810103126101e65751998f6106a3565b3d9150610975565b634e487b7160e01b600052601160045260246000fd5b6020813d6020116109db575b816109c96020938361139a565b810103126101e6575160a05287610626565b3d91506109bc565b90506020813d602011610a0d575b816109fe6020938361139a565b810103126101e65751866105e0565b3d91506109f1565b90506020813d602011610a3f575b81610a306020938361139a565b810103126101e65751856105a5565b3d9150610a23565b9091506020813d602011610a73575b81610a636020938361139a565b810103126101e657519083610555565b3d9150610a56565b60621960443536030160248260051b60443501013512156101e657610abd8487610ab6366024808760051b604435010135604435010161141d565b8587612814565b610ac982608051611655565b52610ad681608051611655565b50600019811461099a576001016104fc565b602090610af36127d6565b8282608051010152016104f0565b90506020813d602011610b3b575b81610b1c6020938361139a565b810103126101e657516001600160a01b03811681036101e657856104b2565b3d9150610b0f565b346101e65760603660031901126101e657610b5c610fc2565b610b64610fd8565b90610b6d610fee565b610b75612122565b50610b7f82611698565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561094357600093610f8e575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561094357600094610f5a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561094357600091610f28575b50828281031161099a57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109435760009b610ef4575b5060206040519e8f90610cd28261132a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610d17846115d9565b93610d25604051958661139a565b808552610d34601f19916115d9565b0160005b818110610edd57505060005b60a0860151805160ff83161015610d925790610d7288610d6b610d8d9460ff851690611655565b51876125ba565b610d7f60ff831688611655565b5261078960ff821687611655565b610d44565b610dea8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561094357600092610ea7575b610233995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610e4d8261137e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061112f565b91506020893d602011610ed5575b81610ec26020938361139a565b810103126101e657610233985191610e06565b3d9150610eb5565b602090610ee86121d6565b82828901015201610d38565b909a506020813d602011610f20575b81610f106020938361139a565b810103126101e657519938610cc0565b3d9150610f03565b90506020813d602011610f52575b81610f436020938361139a565b810103126101e6575188610c43565b3d9150610f36565b9093506020813d602011610f86575b81610f766020938361139a565b810103126101e657519286610bfd565b3d9150610f69565b9092506020813d602011610fba575b81610faa6020938361139a565b810103126101e657519185610bbf565b3d9150610f9d565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b8381106110435750506000910152565b8181015183820152602001611033565b9060209161106c81518092818552858086019101611030565b601f01601f1916010190565b9061111660018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526110ca60a08501516101c08060a0870152850190611053565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611053565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c0810151916111a16101609384610280880152610320870190611053565b9060e0830151166102a0860152610100808301516102c08701526111d961012092838501516101bf19898303016102e08a0152611053565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061128d5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806112ac8f93600194601f1987830301885251611078565b9e0193019301919493929061123e565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e6578035906113ed826113bb565b926113fb604051948561139a565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261147a92016113d6565b910152565b35906001600160a01b03821682036101e657565b9061151a60018060a01b0380845116835260208401516020840152604084015160408401526114d16060850151610160806060870152850190611053565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611053565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e65780516115aa816113bb565b926115b8604051948561139a565b818452602082840101116101e6576115d69160208085019101611030565b90565b6001600160401b03811161035c5760051b60200190565b604051906115fd8261132a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff811461099a5760010190565b80518210156116695760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e1338090806000190482118115151661099a570290565b60e05260006101606040516116ac81611346565b6040516116b881611362565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa8015610943576000610120526120e6575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa918215610943576000926120aa575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156109435760009261206e575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156109435760009361203a575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa90811561094357600091612008575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa94851561094357600095611fd4575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa91821561094357600092611fa0575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa94851561094357600095611f6c575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa98891561094357600099611f38575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa93841561094357600094611f04575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561094357600093611ed0575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa94851561094357600095611e04575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa801561094357600061010052611dc8575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156109435760009c611d8c575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561094357600094611d6f575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561094357600061014052611d3b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561094357600092611d16575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561094357600095611ce2575b506040516101a08181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa9061018091808352156109435760009151611caa575b611b206040518061016052611362565b60018060a01b0316610160515260206101605101526101405160406101605101526060610160510152608061016051015260018060a01b031660a061016051015260c061016051015260e0610160510152611b8060ff61012051166115d9565b97611b8e604051998a61139a565b60ff61012051168952601f19611ba960ff61012051166115d9565b0160005b818110611c9257505060005b60ff610120511660ff82161015611bfa5780611bda611bf59260e051612254565b611be760ff83168d611655565b5261078960ff82168c611655565b611bb9565b50919395979092949698611c246001600160401b03611c1d81610100511661167f565b921661167f565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c4e8c611346565b610160518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611ca06115f0565b9201015201611bad565b905060203d602011611cdb575b611cc4816101a05161139a565b60206101a0518092810103126101e6575190611b10565b503d611cb7565b9094506020813d602011611d0e575b81611cfe6020938361139a565b810103126101e657519338611ac1565b3d9150611cf1565b611d349192503d806000833e611d2c818361139a565b810190611578565b9038611a81565b6020813d602011611d67575b81611d546020938361139a565b810103126101e657516101405238611a51565b3d9150611d47565b611d859194503d806000833e611d2c818361139a565b9238611a20565b909b506020813d602011611dc0575b81611da86020938361139a565b810103126101e657611db99061154a565b9a386119f0565b3d9150611d9b565b6020813d602011611dfc575b81611de16020938361139a565b810103126101e657611df29061154a565b61010052386119ba565b3d9150611dd4565b909450610100813d61010011611ec8575b81611e23610100938361139a565b810103126101e65760405190611e3882611362565b611e418161154a565b8252611e4f6020820161154a565b6020830152611e606040820161154a565b6040830152611e716060820161154a565b6060830152611e826080820161155e565b6080830152611e9360a0820161155e565b60a083015260c081015164ffffffffff811681036101e65760c0830152611ebc9060e001611528565b60e0820152933861197c565b3d9150611e15565b9092506020813d602011611efc575b81611eec6020938361139a565b810103126101e65751913861194a565b3d9150611edf565b9093506020813d602011611f30575b81611f206020938361139a565b810103126101e657519238611919565b3d9150611f13565b9098506020813d602011611f64575b81611f546020938361139a565b810103126101e6575197386118e8565b3d9150611f47565b9094506020813d602011611f98575b81611f886020938361139a565b810103126101e6575193386118b7565b3d9150611f7b565b9091506020813d602011611fcc575b81611fbc6020938361139a565b810103126101e657519038611886565b3d9150611faf565b9094506020813d602011612000575b81611ff06020938361139a565b810103126101e657519338611855565b3d9150611fe3565b90506020813d602011612032575b816120236020938361139a565b810103126101e6575138611824565b3d9150612016565b9092506020813d602011612066575b816120566020938361139a565b810103126101e6575191386117ef565b3d9150612049565b9091506020813d6020116120a2575b8161208a6020938361139a565b810103126101e65761209b90611536565b90386117be565b3d915061207d565b9091506020813d6020116120de575b816120c66020938361139a565b810103126101e6576120d790611536565b903861178d565b3d91506120b9565b6020813d60201161211a575b816120ff6020938361139a565b810103126101e65761211090611528565b610120523861175c565b3d91506120f2565b6040519061212f8261137e565b6040516101a08361213f8361132a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b604051906121e38261137e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b9061225d6115f0565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561246357600093612501575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156124f6576000926124c6575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561243957908c979695949392916000956124ab575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa9889156124a057908c9160009a61246e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156124635760009e612444575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124395760009d612407575b5082519d8e6123d58161132a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311612432575b61241e818361139a565b8101031261242f5750519b386123c7565b80fd5b503d612414565b83513d6000823e3d90fd5b61245b908493929f3d8091833e611d2c818361139a565b9d9091612397565b85513d6000823e3d90fd5b9150988282813d8311612499575b612486818361139a565b8101031261242f57508b90519838612358565b503d61247c565b84513d6000823e3d90fd5b6124bf91953d8091833e611d2c818361139a565b9338612324565b90918582813d83116124ef575b6124dd818361139a565b8101031261242f5750519060046122e1565b503d6124d3565b50513d6000823e3d90fd5b90928382813d83116125b3575b612518818361139a565b8101031261242f57506125a760e086519261253284611362565b61253b81611528565b845261254960208201611536565b6020850152612559888201611536565b888501526125696060820161154a565b606085015261257a6080820161154a565b608085015261258b60a0820161154a565b60a085015261259c60c0820161154a565b60c085015201612240565b60e0820152913861229e565b503d61250e565b91906125c46121d6565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa918215610943576000926127a1575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561094357600091612767575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109435760009d612733575b50604051809e6126df8261137e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161275f575b8161274e6020938361139a565b8101031261242f5750519b386126d0565b3d9150612741565b906020823d602011612799575b816127816020938361139a565b8101031261242f575061279390612240565b3861264f565b3d9150612774565b90916020823d6020116127ce575b816127bc6020938361139a565b8101031261242f57505190602061260b565b3d91506127af565b604051906127e382611362565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946128216127d6565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b6d578a918a91600098612b27575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561243957600092612af8575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa9485156124a057600095612ac4575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561246357600097612a90575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f1978815612463578c8b9c9d9e60009a612a43575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a385760009b612a09575b5091836129959c9d9e9281809501519388519e8f9586948593631fc58c3360e31b85528401526024830190611053565b0392165afa988915612439576000996129da575b508251996129b68b611362565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d8311612a02575b6129f1818361139a565b8101031261242f57505197386129a9565b503d6129e7565b909a8482813d8311612a31575b612a20818361139a565b8101031261242f5750519983612965565b503d612a16565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612a89575b612a67818361139a565b8101031261242f5750918c97959391858c60009c9b999795519a91509b61293d565b503d612a5d565b969c8381813d8311612abd575b612aa7818361139a565b81010312612ab9578c9d50519661290a565b8d80fd5b503d612a9d565b949b8281813d8311612af1575b612adb818361139a565b81010312612aed578b9c5051946128db565b8c80fd5b503d612ad1565b90918282813d8311612b20575b612b0f818361139a565b8101031261242f57505190386128ad565b503d612b05565b8093508480929993503d8311612b66575b612b42818361139a565b8101031261242f5781518015150361242f5750602001519489908990612899612865565b503d612b38565b82513d6000823e3d90fdfea264697066735822122022d390f589dc4d3beacef35e29ed05e0724e9833a837be17a0ed8a259eec002664736f6c63430008100033", - "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;2283:20:2;;1583:1980;;;;-1:-1:-1;;;;;1583:1980:2;;2283:20;;;;;;;1583:1980;2283:20;;;1583:1980;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::i;:::-;;;;;;;;;2425:10;;1583:1980;2437:15;1583:1980;;;;;2437:15;;;;1583:1980;;-1:-1:-1;;;2616:33:2;;-1:-1:-1;;;;;1583:1980:2;;;;2616:33;;1583:1980;;;;;;;;;;;;;;;;2616:33;1583:1980;-1:-1:-1;;;;;1583:1980:2;;2616:33;;;;;;;1583:1980;2616:33;;;2420:136;1583:1980;;;:::i;:::-;;8386:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8435:24:1;;1583:1980:2;;;;;;;;;;;;;;8435:24:1;;;;;;;1583:1980:2;8435:24:1;;;2420:136:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8495:30:1;;1583:1980:2;;;;;;;;;;;8495:30:1;;;;;;;1583:1980:2;8495:30:1;;;2420:136:2;-1:-1:-1;8622:18:1;;1583:1980:2;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8669:70:1;;1583:1980:2;;;;;;;;;;;;;;;;;8669:70:1;;;;;;1583:1980:2;;8669:70:1;;;2420:136:2;1583:1980;;;;;;;;8819:18:1;;;;:25;1583:1980:2;8819:25:1;;;8862:27;1583:1980:2;8862:27:1;;1583:1980:2;;8908:28:1;;1583:1980:2;8950:23:1;1583:1980:2;8950:23:1;;;1583:1980:2;;;;;;;8992:28:1;;1583:1980:2;;9035:24:1;;;;1583:1980:2;9083:33:1;1583:1980:2;9083:33:1;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9139:54:1;;1583:1980:2;;;;;;;9139:54:1;;1583:1980:2;9139:54:1;;;;;;;1583:1980:2;9139:54:1;;;2420:136:2;1583:1980;;;;;9035:24:1;1583:1980:2;;:::i;:::-;9035:24:1;1583:1980:2;;;;;9035:24:1;8577:623;;1583:1980:2;;;9035:24:1;8577:623;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;9035:24:1;8577:623;;;1583:1980:2;;9035:24:1;8577:623;;1583:1980:2;8577:623:1;9035:24;8577:623;;1583:1980:2;8577:623:1;9035:24;8577:623;;1583:1980:2;8577:623:1;9035:24;8577:623;;1583:1980:2;;9302:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1583:1980:2;9402:3:1;1583:1980:2;9302:25:1;;9368;1583:1980:2;;;;;9364:36:1;;;;1583:1980:2;9427:71:1;1583:1980:2;9460:28:1;9402:3;1583:1980:2;;;;9460:28:1;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;1583:1980:2;;;9415:83:1;;:::i;:::-;;;1583:1980:2;;;9415:83:1;;:::i;:::-;;9402:3;:::i;:::-;9351:11;;9364:36;-1:-1:-1;;1583:1980:2;9610:26:1;;;1583:1980:2;;9671:32:1;;;1583:1980:2;;9738:32:1;;1583:1980:2;;9791:18:1;;1583:1980:2;;;-1:-1:-1;;;9836:32:1;;-1:-1:-1;;;;;1583:1980:2;;;;9836:32:1;;1583:1980:2;-1:-1:-1;1583:1980:2;;;;;;;;;;;;9364:36:1;;;1583:1980:2;;;;;;;;9836:32:1;;;;;;;1583:1980:2;9836:32:1;;;9346:159;1583:1980:2;9921:16:1;;9035:24;9921:16;;1583:1980:2;;;;;;;;9973:15:1;10011:20;1583:1980:2;10011:20:1;;1583:1980:2;10063:29:1;8577:623;10063:29;;1583:1980:2;10115:20:1;8577:623;10115:20;;1583:1980:2;10167:29:1;1583:1980:2;8577:623:1;10167:29;;1583:1980:2;10226:27:1;;1583:1980:2;;;;;;;;;:::i;:::-;9035:24:1;1583:1980:2;;;9524:738:1;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;9035:24:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;9524:738:1;;;1583:1980:2;9524:738:1;;;1583:1980:2;;;;;;;:::i;:::-;;;;2575:173;;1583:1980;;;;;;2575:173;;1583:1980;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8577:623:1;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;9836:32:1;;;1583:1980:2;9836:32:1;;1583:1980:2;9836:32:1;;;;;;1583:1980:2;9836:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;1583:1980:2;9139:54:1;;1583:1980:2;9139:54:1;;;;;;1583:1980:2;9139:54:1;;;:::i;:::-;;;1583:1980:2;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;1583:1980:2;;;;;;;;;;;;8669:70:1;1583:1980:2;8669:70:1;;1583:1980:2;8669:70:1;;;;;;1583:1980:2;8669:70:1;;;:::i;:::-;;;1583:1980:2;;;;;;8669:70:1;;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;1583:1980:2;8495:30:1;;1583:1980:2;8495:30:1;;;;;;1583:1980:2;8495:30:1;;;:::i;:::-;;;1583:1980:2;;;;;8495:30:1;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;1583:1980:2;8435:24:1;;1583:1980:2;8435:24:1;;;;;;1583:1980:2;8435:24:1;;;:::i;:::-;;;1583:1980:2;;;;;8435:24:1;;;;;;-1:-1:-1;8435:24:1;;2616:33:2;;;;1583:1980;2616:33;;1583:1980;2616:33;;;;;;1583:1980;2616:33;;;:::i;:::-;;;1583:1980;;;;;2616:33;;;;;;;-1:-1:-1;2616:33:2;;2454:3;1583:1980;;;;;;;;;;;;;;;;;;;;2479:70;1583:1980;;;;;;;;;;;;;;;;;;;:::i;:::-;2479:70;;;:::i;:::-;2467:82;;1583:1980;2467:82;;:::i;:::-;;;;1583:1980;2467:82;;:::i;:::-;-1:-1:-1;;;1583:1980:2;;;;;;2425:10;;1583:1980;;;;;:::i;:::-;;;;;;;;;;;2283:20;;;1583:1980;2283:20;;1583:1980;2283:20;;;;;;1583:1980;2283:20;;;:::i;:::-;;;1583:1980;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;2283:20;;;;;;-1:-1:-1;2283:20:2;;1583:1980;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8386:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8435:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8435:24:1;;1583:1980:2;;;;;;;8435:24:1;;1583:1980:2;;;;;;;;8435:24:1;;;;;;;1583:1980:2;8435:24:1;;;1583:1980:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8495:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8495:30:1;;1583:1980:2;;;;8435:24:1;;1583:1980:2;;;;;;;;8495:30:1;;;;;;;1583:1980:2;8495:30:1;;;1583:1980:2;-1:-1:-1;8622:18:1;;1583:1980:2;;;-1:-1:-1;;;8669:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8669:70:1;;1583:1980:2;;;;;;;;;;;;;8435:24:1;1583:1980:2;;;;8669:70:1;;;;;;;1583:1980:2;8669:70:1;;;1583:1980:2;;;;;;;;;8819:18:1;;;;:25;1583:1980:2;8819:25:1;;;8862:27;1583:1980:2;8862:27:1;;1583:1980:2;;8908:28:1;;1583:1980:2;8950:23:1;;;;;1583:1980:2;;;;;;;8992:28:1;;1583:1980:2;;9035:24:1;;;;1583:1980:2;9083:33:1;8435:24;9083:33;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9139:54:1;;1583:1980:2;;;;;;;9139:54:1;;1583:1980:2;9139:54:1;;;;;;;1583:1980:2;9139:54:1;;;1583:1980:2;;8435:24:1;1583:1980:2;;;;;;;;:::i;:::-;;;8577:623:1;1583:1980:2;;;8577:623:1;;1583:1980:2;;8577:623:1;;1583:1980:2;8950:23:1;8577:623;;1583:1980:2;;8577:623:1;;1583:1980:2;9035:24:1;8577:623;;1583:1980:2;;8577:623:1;;1583:1980:2;8577:623:1;;;1583:1980:2;8577:623:1;;;1583:1980:2;8577:623:1;;;1583:1980:2;;9302:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9351:11:1;;1583:1980:2;9402:3:1;1583:1980:2;9302:25:1;;9368;1583:1980:2;;;;;9364:36:1;;;;1583:1980:2;9427:71:1;1583:1980:2;9460:28:1;9402:3;1583:1980:2;;;;9460:28:1;;:::i;:::-;;9427:71;;:::i;:::-;9415:83;1583:1980:2;;;9415:83:1;;:::i;:::-;;;1583:1980:2;;;9415:83:1;;:::i;9402:3::-;9351:11;;9364:36;9836:32;9364:36;;;;;;8435:24;9610:26;;1583:1980:2;9671:32:1;1583:1980:2;9671:32:1;;1583:1980:2;9738:32:1;8435:24;1583:1980:2;9738:32:1;;1583:1980:2;9791:18:1;8950:23;9791:18;;1583:1980:2;;;;;;;;;;;;9836:32:1;;;1583:1980:2;9836:32:1;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;9836:32:1;;;-1:-1:-1;;;;;1583:1980:2;9836:32:1;;;;;;;1583:1980:2;9836:32:1;;;9346:159;1583:1980:2;9921:16:1;;9035:24;9921:16;;1583:1980:2;;;;;;;;9973:15:1;10011:20;1583:1980:2;10011:20:1;;1583:1980:2;10063:29:1;8577:623;10063:29;;1583:1980:2;10115:20:1;8577:623;10115:20;;1583:1980:2;10167:29:1;1583:1980:2;8577:623:1;10167:29;;1583:1980:2;10226:27:1;;1583:1980:2;;8435:24:1;1583:1980:2;;;;;;;;:::i;:::-;;;9524:738:1;1583:1980:2;;9524:738:1;;1583:1980:2;;9524:738:1;;1583:1980:2;8950:23:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;9035:24:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;8577:623:1;9524:738;;1583:1980:2;;9524:738:1;;1583:1980:2;9524:738:1;;;1583:1980:2;9524:738:1;;;1583:1980:2;;;;;;8435:24:1;1583:1980:2;;8435:24:1;1583:1980:2;;;;:::i;9836:32:1:-;;;8435:24;9836:32;;8435:24;9836:32;;;;;;8435:24;9836:32;;;:::i;:::-;;;1583:1980:2;;;;;;;9836:32:1;;;;;;-1:-1:-1;9836:32:1;;1583:1980:2;8435:24:1;1583:1980:2;;;:::i;:::-;;;;;;;;;;9139:54:1;;;;8435:24;9139:54;;8435:24;9139:54;;;;;;8435:24;9139:54;;;:::i;:::-;;;1583:1980:2;;;;;9139:54:1;;;;;;;-1:-1:-1;9139:54:1;;8669:70;;;8435:24;8669:70;;8435:24;8669:70;;;;;;8435:24;8669:70;;;:::i;:::-;;;1583:1980:2;;;;;8669:70:1;;;;;;-1:-1:-1;8669:70:1;;8495:30;;;;8435:24;8495:30;;8435:24;8495:30;;;;;;8435:24;8495:30;;;:::i;:::-;;;1583:1980:2;;;;;8495:30:1;;;;;;;-1:-1:-1;8495:30:1;;8435:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;8435:24:1;;;;;;;-1:-1:-1;8435:24:1;;1583:1980:2;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18:1;;1583:1980:2;;;;4218:18:1;;;;;;;;;;;:::o;6180:2007::-;;;-1:-1:-1;1583:1980:2;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;6271:17:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6271:17:1;;;;;;-1:-1:-1;1583:1980:2;6271:17:1;;;6180:2007;1583:1980:2;;;;;;;6314:17:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;;6180:2007;1583:1980:2;;;;;;;6366:26:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;;6180:2007;1583:1980:2;;;;;;;6415:21:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6468:26:1;;6180:2007;6271:15;1583:1980:2;;;;6271:17:1;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;6468:26:1;;;;;;;-1:-1:-1;6468:26:1;;;6180:2007;1583:1980:2;;;;;;;6531:31:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;;6180:2007;1583:1980:2;;;;;;;6599:31:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;;6180:2007;1583:1980:2;;;;;;;6661:25:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;;6180:2007;1583:1980:2;;;;;;;6711:22:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;;6180:2007;1583:1980:2;;;;;;;6758:19:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;;6180:2007;1583:1980:2;;;;;;;6802:19:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;;6180:2007;1583:1980:2;;;;;;;6866:19:1;;1583:1980:2;;6271:17:1;1583:1980:2;;;;;;6180:2007:1;6271:15;1583:1980:2;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6918:32:1;;6271:17;6918:32;;1583:1980:2;;;6180:2007:1;6271:15;1583:1980:2;;;;;;;;-1:-1:-1;;;;;1583:1980:2;6918:32:1;;;;;;-1:-1:-1;1583:1980:2;6918:32:1;;;6180:2007;1583:1980:2;;;;;;;6983:32:1;;6271:17;6983:32;;1583:1980:2;;;;;;;;;;6180:2007:1;6271:15;1583:1980:2;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7105:25:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6271:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7105:25:1;;;;;;;-1:-1:-1;7105:25:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7148:27:1;;1583:1980:2;;6271:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7148:27:1;;;;;;-1:-1:-1;1583:1980:2;7148:27:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7217:23:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6271:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7217:23:1;;;;;;;-1:-1:-1;7217:23:1;;;6180:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7292:34:1;;-1:-1:-1;;;;;1583:1980:2;;;6271:17:1;7292:34;;1583:1980:2;;6271:15:1;1583:1980:2;;;;;;;;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;;6180:2007;-1:-1:-1;1583:1980:2;;7350:42:1;;;;-1:-1:-1;;;7350:42:1;;;1583:1980:2;6271:15:1;7350:42;;-1:-1:-1;;;;;1583:1980:2;;;6271:17:1;7350:42;;;1583:1980:2;7350:42:1;;1583:1980:2;;;;7350:42:1;;1583:1980:2;;7350:42:1;;;;;;;;;;;-1:-1:-1;7350:42:1;;;;6180:2007;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;;;;7051:348:1;;1583:1980:2;;;;;7051:348:1;;1583:1980:2;;;7051:348:1;;1583:1980:2;;;7051:348:1;;1583:1980:2;;;;;;;;;7051:348:1;;1583:1980:2;;;7051:348:1;;1583:1980:2;6180:2007:1;1583:1980:2;7051:348:1;;1583:1980:2;;;;6254:34:1;1583:1980:2;;:::i;:::-;;;;;;;;:::i;:::-;;;6254:34:1;1583:1980:2;;;;;;;;6254:34:1;1583:1980:2;;:::i;:::-;;-1:-1:-1;1583:1980:2;;;;;;7483:11:1;;-1:-1:-1;7511:3:1;1583:1980:2;;6254:34:1;1583:1980:2;;;;7496:13:1;;;;7536:24;;7511:3;7536:24;6180:2007;7536:24;;:::i;:::-;7524:36;1583:1980:2;;;7524:36:1;;:::i;:::-;;;1583:1980:2;;;7524:36:1;;:::i;7511:3::-;7483:11;;7496:13;;;;;;;;;;;7901:38;-1:-1:-1;;;;;7810:38:1;6891:59;1583:1980:2;6891:59:1;1583:1980:2;7810:38:1;:::i;:::-;1583:1980:2;;7901:38:1;:::i;:::-;8005:27;1583:1980:2;;8005:27:1;1583:1980:2;8005:27:1;;4218:18;1583:1980:2;8098:27:1;;4218:18;1583:1980:2;;;;;;;;:::i;:::-;;;;;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;6180:2007:1;7586:596;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;;7586:596:1;;1583:1980:2;6180:2007:1;:::o;1583:1980:2:-;;;;;;;;:::i;:::-;;;;;;;;7350:42:1;;;1583:1980:2;7350:42:1;1583:1980:2;7350:42:1;;;;;;;;;:::i;:::-;1583:1980:2;7350:42:1;1583:1980:2;7350:42:1;;;;1583:1980:2;;;;;7350:42:1;;;;;;;;7292:34;;;;1583:1980:2;7292:34:1;;1583:1980:2;7292:34:1;;;;;;1583:1980:2;7292:34:1;;;:::i;:::-;;;1583:1980:2;;;;;7292:34:1;;;;;;;-1:-1:-1;7292:34:1;;7217:23;;;;;;;-1:-1:-1;7217:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7148:27;1583:1980:2;7148:27:1;;1583:1980:2;7148:27:1;;;;;;1583:1980:2;7148:27:1;;;:::i;:::-;;;1583:1980:2;;;;;;7148:27:1;;;;;;;-1:-1:-1;7148:27:1;;7105:25;;;;;;;-1:-1:-1;7105:25:1;;;;;;:::i;:::-;;;;;6983:32;;;;1583:1980:2;6983:32:1;;1583:1980:2;6983:32:1;;;;;;1583:1980:2;6983:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6983:32:1;;;;;;;-1:-1:-1;6983:32:1;;6918;1583:1980:2;6918:32:1;;1583:1980:2;6918:32:1;;;;;;1583:1980:2;6918:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6918:32:1;;;;;;;-1:-1:-1;6918:32:1;;6866:19;;;;1583:1980:2;6866:19:1;;1583:1980:2;6866:19:1;;;;;;1583:1980:2;6866:19:1;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6180:2007:1;1583:1980:2;;:::i;:::-;6180:2007:1;1583:1980:2;;;6866:19:1;;;;;;;-1:-1:-1;6866:19:1;;6802;;;;1583:1980:2;6802:19:1;;1583:1980:2;6802:19:1;;;;;;1583:1980:2;6802:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6802:19:1;;;;;;;-1:-1:-1;6802:19:1;;6758;;;;1583:1980:2;6758:19:1;;1583:1980:2;6758:19:1;;;;;;1583:1980:2;6758:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6758:19:1;;;;;;;-1:-1:-1;6758:19:1;;6711:22;;;;1583:1980:2;6711:22:1;;1583:1980:2;6711:22:1;;;;;;1583:1980:2;6711:22:1;;;:::i;:::-;;;1583:1980:2;;;;;6711:22:1;;;;;;;-1:-1:-1;6711:22:1;;6661:25;;;;1583:1980:2;6661:25:1;;1583:1980:2;6661:25:1;;;;;;1583:1980:2;6661:25:1;;;:::i;:::-;;;1583:1980:2;;;;;6661:25:1;;;;;;;-1:-1:-1;6661:25:1;;6599:31;;;;1583:1980:2;6599:31:1;;1583:1980:2;6599:31:1;;;;;;1583:1980:2;6599:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6599:31:1;;;;;;;-1:-1:-1;6599:31:1;;6531;;;;1583:1980:2;6531:31:1;;1583:1980:2;6531:31:1;;;;;;1583:1980:2;6531:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6531:31:1;;;;;;;-1:-1:-1;6531:31:1;;6468:26;;;1583:1980:2;6468:26:1;;1583:1980:2;6468:26:1;;;;;;1583:1980:2;6468:26:1;;;:::i;:::-;;;1583:1980:2;;;;;6468:26:1;;;;;;-1:-1:-1;6468:26:1;;6415:21;;;;1583:1980:2;6415:21:1;;1583:1980:2;6415:21:1;;;;;;1583:1980:2;6415:21:1;;;:::i;:::-;;;1583:1980:2;;;;;6415:21:1;;;;;;;-1:-1:-1;6415:21:1;;6366:26;;;;1583:1980:2;6366:26:1;;1583:1980:2;6366:26:1;;;;;;1583:1980:2;6366:26:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6366:26:1;;;;;;;-1:-1:-1;6366:26:1;;6314:17;;;;1583:1980:2;6314:17:1;;1583:1980:2;6314:17:1;;;;;;1583:1980:2;6314:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6314:17:1;;;;;;;-1:-1:-1;6314:17:1;;6271;1583:1980:2;6271:17:1;;1583:1980:2;6271:17:1;;;;;;1583:1980:2;6271:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6271:17:1;;;;;;;-1:-1:-1;6271:17:1;;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;10271:782:1:-;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10407:25:1;;1583:1980:2;;;;10407:25:1;;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;;;;;10407:25:1;;1583:1980:2;;;;10407:25:1;;;;;;;-1:-1:-1;10407:25:1;;;10271:782;1583:1980:2;;10495:15:1;;;;1583:1980:2;;;;;;-1:-1:-1;;;;;10538:32:1;10407:25;10538:32;;;;1583:1980:2;;;;;;;;;;;;;;10590:33:1;;;;;;;;;-1:-1:-1;10590:33:1;;;10271:782;10660:35;10407:25;10660:35;;1583:1980:2;10660:35:1;;1583:1980:2;;10724:27:1;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;10767:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10767:29:1;;;10271:782;10828:19;;;;1583:1980:2;;;;;;;;;;;;;;;10813:35:1;;10407:25;10813:35;;1583:1980:2;10813:35:1;;;;;;;;;;-1:-1:-1;10813:35:1;;;10271:782;1583:1980:2;;;10909:19:1;1583:1980:2;10909:19:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;10946:31:1;;;;10407:25;10946:31;-1:-1:-1;10946:31:1;;;;;;;-1:-1:-1;10946:31:1;;;10271:782;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;11000:39:1;;1583:1980:2;;10407:25:1;11000:39;;1583:1980:2;;;;;;;11000:39:1;;1583:1980:2;11000:39:1;;;;;;;-1:-1:-1;11000:39:1;;;10271:782;1583:1980:2;;;;;;;;:::i;:::-;;10452:596:1;;1583:1980:2;10452:596:1;;1583:1980:2;10452:596:1;;;1583:1980:2;10538:32:1;10452:596;;1583:1980:2;;10452:596:1;;1583:1980:2;10724:27:1;10452:596;;1583:1980:2;;10452:596:1;;1583:1980:2;10452:596:1;;1583:1980:2;10452:596:1;;;1583:1980:2;10452:596:1;;;1583:1980:2;10271:782:1;:::o;11000:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;11000:39:1;;;;1583:1980:2;;;11000:39:1;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10946:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10813:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;10813:35:1;;;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10767:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10590:33;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;10407:25:1;10590:33;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10407:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10407:25:1;;;;;;;;;11057:925;;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11357:63:1;;-1:-1:-1;;;;;1583:1980:2;;;11357:63:1;;;1583:1980:2;;;;;;;;;;;;;;;11357:63:1;1583:1980:2;;;;11357:63:1;;;;;;;-1:-1:-1;11357:63:1;;;11057:925;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11439:57:1;;-1:-1:-1;;;;;1583:1980:2;;;11357:63:1;11439:57;;1583:1980:2;;;;;;;;;11357:63:1;;1583:1980:2;;;;;;11439:57:1;;;;;;;-1:-1:-1;11439:57:1;;;11057:925;-1:-1:-1;11357:63:1;11524:22;;1583:1980:2;;11566:14:1;;;1583:1980:2;11617:31:1;;;1583:1980:2;;11677:23:1;;1583:1980:2;11716:10:1;;;;11743:11;;;1583:1980:2;;11775:15:1;;1583:1980:2;11811:15:1;;;1583:1980:2;11844:12:1;;;;11879:17;;;1583:1980:2;;;;;-1:-1:-1;;;11921:47:1;;-1:-1:-1;;;;;1583:1980:2;;;11357:63:1;11921:47;;1583:1980:2;;11844:12:1;;1583:1980:2;;;;;;;;;;11716:10:1;;1583:1980:2;;;;;11921:47:1;;1583:1980:2;11921:47:1;11357:63;11921:47;;;;;;;-1:-1:-1;11921:47:1;;;11057:925;1583:1980:2;;;;;;;;:::i;:::-;;;11357:63:1;11256:721;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;11256:721:1;;1583:1980:2;11716:10:1;11256:721;;1583:1980:2;11617:31:1;11256:721;;1583:1980:2;;11256:721:1;;1583:1980:2;11743:11:1;11256:721;;1583:1980:2;;11256:721:1;;1583:1980:2;11811:15:1;11256:721;;1583:1980:2;11844:12:1;11256:721;;1583:1980:2;11879:17:1;11256:721;;1583:1980:2;11256:721:1;;;1583:1980:2;11256:721:1;;;1583:1980:2;11256:721:1;;;1583:1980:2;11057:925:1;:::o;11921:47::-;;;11357:63;11921:47;;11357:63;11921:47;;;;;;11357:63;11921:47;;;:::i;:::-;;;1583:1980:2;;;;;;11921:47:1;;;;;;;-1:-1:-1;11921:47:1;;11439:57;;11357:63;11439:57;;11357:63;11439:57;;;;;;11357:63;11439:57;;;:::i;:::-;;;1583:1980:2;;;;;;;;:::i;:::-;11439:57:1;;;;;;-1:-1:-1;11439:57:1;;11357:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;11357:63:1;;;;;;-1:-1:-1;11357:63:1;;1583:1980:2;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2757:804::-;;;;;;1583:1980;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:36;;;;;;;1583:1980;;3056:36;;;;;;;1583:1980;;;;-1:-1:-1;3056:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3181:34:2;;-1:-1:-1;;;;;1583:1980:2;;;3181:34;;;1583:1980;;;;;;;;;;;;;;;;;;;;;;3181:34;;;;;;;;;;;-1:-1:-1;3181:34:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3234:25:2;;1583:1980;;;3234:25;;;1583:1980;;;;3234:25;1583:1980;;;3234:25;;;;;;;;-1:-1:-1;3234:25:2;;;2757:804;1583:1980;;-1:-1:-1;;;3288:35:2;;;;;1583:1980;;;;-1:-1:-1;3288:35:2;1583:1980;3288:35;1583:1980;3288:35;1583:1980;3288:35;-1:-1:-1;3288:35:2;;;;;;;-1:-1:-1;3288:35:2;;;2757:804;1583:1980;;;;;;;;;;3348:36;;;1583:1980;3348:36;;;;;1583:1980;3348:36;-1:-1:-1;3348:36:2;;;;;;;;;;;;-1:-1:-1;3348:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3452:28:2;;1583:1980;;;;;;;-1:-1:-1;;3452:28:2;;;;;;;-1:-1:-1;3452:28:2;;;2757:804;3515:31;;;1583:1980;3515:31;;;;;;;;;1583:1980;;;;;;;;;;;;;3497:50;;;;1583:1980;;;;;;:::i;:::-;3497:50;1583:1980;;3497:50;;;;;;;-1:-1:-1;3497:50:2;;;2757:804;1583:1980;;;;;;;:::i;:::-;;;3112:444;;1583:1980;3112:444;;1583:1980;3112:444;;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;2757:804;:::o;3497:50::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3497:50;;;;;;;;;3452:28;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;-1:-1:-1;1583:1980:2;;;3452:28;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;;3348:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;3348:36;;;;;;;;;;;3288:35;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3288:35;;;1583:1980;;;;3288:35;;;;;3234:25;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3234:25;;;1583:1980;;;;3234:25;;;;;3181:34;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3181:34;;;;;;;;;3056:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;3181:34;3056:36;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;", + "object": "0x6101c0604052600436101561001357600080fd5b60003560e01c80635346cc1914610b5357806361d11a6e146103ec578063a72b45e014610372578063c2815c0b14610237578063cbe293fa146101eb5763d4fc9fc61461005f57600080fd5b346101e6576020806003193601126101e65761008161007c610fe2565b6116b8565b906040519080825282519261018090818385015261011760018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976100ea610100998a6102208b01526102a08a0190611073565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611073565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b8483106101b9578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b90919293949884806101d6838f8690600196030187528d516114b3565b9b0193019301919493929061016d565b600080fd5b346101e65760403660031901126101e657610204610fe2565b6024359060ff821682036101e6576102339161021f91612274565b6040519182916020835260208301906114b3565b0390f35b346101e6576003196060368201126101e657610251610fe2565b602435906001600160401b03928383116101e657610160809184360301126101e6576040519081018181108582111761035c576040526102938360040161149f565b8152602483013560208201526044830135604082015260648301358481116101e6576102c590600436918601016113f6565b60608201526084830135608082015260a483013560a082015260c483013560c08201526102f460e4840161149f565b60e08201526101048301356101008201526101248301359384116101e6576101446103489361032c61023396600436918401016113f6565b610120840152013561014082015261034261100e565b916125da565b604051918291602083526020830190611098565b634e487b7160e01b600052604160045260246000fd5b346101e65760a03660031901126101e65761038b610fe2565b602435906001600160a01b03821682036101e657604435906001600160401b0382116101e657610100926103c66103dd93369060040161143d565b6103ce611024565b916103d761103a565b93612834565b6103ea60405180926112dc565bf35b346101e65760a03660031901126101e657610405610fe2565b61040d610ff8565b6001600160401b0380604435116101e6573660236044350112156101e65760443560040135116101e6573660246044356004013560051b6044350101116101e657610456611024565b9161045f61103a565b9060405161046c8161132f565b60008152606060208201526040610481612142565b9101526040516307dc0d1d60e41b81526020816004816001600160a01b0386165afa90811561095357600091610b11575b506104d16104c5604435600401356115f9565b6040518060c0526113ba565b60c0516004604435013590819052601f19906104ec906115f9565b0160005b818110610af857505060005b604435600401358110610a8b57604051636eb1769f60e11b81526001600160a01b03808816600483015285166024820152869086602082806044810103816001600160a01b0385165afa91821561095357600092610a57575b5061055e612142565b50610568816116b8565b6040516370a0823160e01b81526001600160a01b0385811660048301529192916020908290602490829086165afa90811561095357600091610a25575b50604051630dd3126d60e21b81526001600160a01b0386811660048301526020908290602490829087165afa908115610953576000916109f3575b50835151604051636eb1769f60e11b81526001600160a01b038881166004830152858116602483015290911690602081604481855afa801561095357600060a0526109c0575b506000821283838103128116908484810313901516176109aa57869285519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109535760009b610976575b506106c36040518060805261134a565b6080515260a0516020608051015203604060805101526060608051015260808051015260a0608051015260c0608051015260e0608051015261010060805101526101206080510152610140608051015260a08201515191610723836115f9565b9261073160405194856113ba565b808452610740601f19916115f9565b0160005b81811061095f57505060005b60a0820151805160ff831610156107a4579061077e8761077761079f9460ff851690611675565b51866125da565b61078b60ff831687611675565b5261079960ff821686611675565b50611664565b610750565b5050602081810151604080840151606085015160808601519251636eb1769f60e11b81526001600160a01b03808c166004830152600060248301529098949792959194928b92918a916044918391165afa9182156109535760009261091e575b6020985060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b6040519d8e6108478161139e565b6080518152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519161089d8361132f565b8252602082019060c051825260408301908152604051916020835260808301935160208401525192606060408401528351809152602060a0840194019060005b8181106108fd578480610233888751601f1984830301606085015261114f565b9091946020610100826109136001948a516112dc565b0196019291016108dd565b91506020883d60201161094b575b81610939602093836113ba565b810103126101e6576020975191610804565b3d915061092c565b6040513d6000823e3d90fd5b60209061096a6121f6565b82828801015201610744565b909a506020813d6020116109a2575b81610992602093836113ba565b810103126101e65751998f6106b3565b3d9150610985565b634e487b7160e01b600052601160045260246000fd5b6020813d6020116109eb575b816109d9602093836113ba565b810103126101e6575160a05287610626565b3d91506109cc565b90506020813d602011610a1d575b81610a0e602093836113ba565b810103126101e65751866105e0565b3d9150610a01565b90506020813d602011610a4f575b81610a40602093836113ba565b810103126101e65751856105a5565b3d9150610a33565b9091506020813d602011610a83575b81610a73602093836113ba565b810103126101e657519083610555565b3d9150610a66565b60621960443536030160248260051b60443501013512156101e657610acd8487610ac6366024808760051b604435010135604435010161143d565b8587612834565b610ad98260c051611675565b52610ae68160c051611675565b5060001981146109aa576001016104fc565b602090610b036127f6565b828260c051010152016104f0565b90506020813d602011610b4b575b81610b2c602093836113ba565b810103126101e657516001600160a01b03811681036101e657856104b2565b3d9150610b1f565b346101e65760603660031901126101e657610b6c610fe2565b610b74610ff8565b90610b7d61100e565b610b85612142565b50610b8f826116b8565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561095357600093610fae575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561095357600094610f7a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561095357600091610f48575b506000821283838103128116908484810313901516176109aa57879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156109535760009b610f14575b5060206040519e8f90610cf28261134a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610d37846115f9565b93610d4560405195866113ba565b808552610d54601f19916115f9565b0160005b818110610efd57505060005b60a0860151805160ff83161015610db25790610d9288610d8b610dad9460ff851690611675565b51876125da565b610d9f60ff831688611675565b5261079960ff821687611675565b610d64565b610e0a8387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561095357600092610ec7575b610233995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610e6d8261139e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061114f565b91506020893d602011610ef5575b81610ee2602093836113ba565b810103126101e657610233985191610e26565b3d9150610ed5565b602090610f086121f6565b82828901015201610d58565b909a506020813d602011610f40575b81610f30602093836113ba565b810103126101e657519938610ce0565b3d9150610f23565b90506020813d602011610f72575b81610f63602093836113ba565b810103126101e6575188610c53565b3d9150610f56565b9093506020813d602011610fa6575b81610f96602093836113ba565b810103126101e657519286610c0d565b3d9150610f89565b9092506020813d602011610fda575b81610fca602093836113ba565b810103126101e657519185610bcf565b3d9150610fbd565b600435906001600160a01b03821682036101e657565b602435906001600160a01b03821682036101e657565b604435906001600160a01b03821682036101e657565b606435906001600160a01b03821682036101e657565b608435906001600160a01b03821682036101e657565b60005b8381106110635750506000910152565b8181015183820152602001611053565b9060209161108c81518092818552858086019101611050565b601f01601f1916010190565b9061113660018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526110ea60a08501516101c08060a0870152850190611073565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611073565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c0810151916111c16101609384610280880152610320870190611073565b9060e0830151166102a0860152610100808301516102c08701526111f961012092838501516101bf19898303016102e08a0152611073565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106112ad5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806112cc8f93600194601f1987830301885251611098565b9e0193019301919493929061125e565b60e0809160018060a01b0381511684526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151910152565b606081019081106001600160401b0382111761035c57604052565b61016081019081106001600160401b0382111761035c57604052565b61018081019081106001600160401b0382111761035c57604052565b61010081019081106001600160401b0382111761035c57604052565b6101c081019081106001600160401b0382111761035c57604052565b90601f801991011681019081106001600160401b0382111761035c57604052565b6001600160401b03811161035c57601f01601f191660200190565b81601f820112156101e65780359061140d826113db565b9261141b60405194856113ba565b828452602083830101116101e657816000926020809301838601378301015290565b9190916040818403126101e65760408051916001600160401b039183018281118482101761035c57604052919384929081356001600160a01b03811681036101e657845260208201359283116101e65760209261149a92016113f6565b910152565b35906001600160a01b03821682036101e657565b9061153a60018060a01b0380845116835260208401516020840152604084015160408401526114f16060850151610160806060870152850190611073565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611073565b916101408091015191015290565b519060ff821682036101e657565b51906001600160a01b03821682036101e657565b51906001600160401b03821682036101e657565b51906cffffffffffffffffffffffffff821682036101e657565b6020818303126101e6578051906001600160401b0382116101e6570181601f820112156101e65780516115ca816113db565b926115d860405194856113ba565b818452602082840101116101e6576115f69160208085019101611050565b90565b6001600160401b03811161035c5760051b60200190565b6040519061161d8261134a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146109aa5760010190565b80518210156116895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6301e133809080600019048211811515166109aa570290565b60e05260006101606040516116cc81611366565b6040516116d881611382565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa801561095357600061012052612106575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa918215610953576000926120ca575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156109535760009261208e575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156109535760009361205a575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa90811561095357600091612028575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa94851561095357600095611ff4575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa91821561095357600092611fc0575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa94851561095357600095611f8c575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa98891561095357600099611f58575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa93841561095357600094611f24575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561095357600093611ef0575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa94851561095357600095611e24575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa801561095357600061010052611de8575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156109535760009c611dac575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa93841561095357600094611d8f575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561095357600061014052611d5b575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa91821561095357600092611d36575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561095357600095611d02575b506040516101808181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa8061016052156109535760009061016051611cca575b611b40604051806101a052611382565b60018060a01b03166101a0515260206101a05101526101405160406101a051015260606101a051015260806101a051015260018060a01b031660a06101a051015260c06101a051015260e06101a0510152611ba060ff61012051166115f9565b97611bae604051998a6113ba565b60ff61012051168952601f19611bc960ff61012051166115f9565b0160005b818110611cb257505060005b60ff610120511660ff82161015611c1a5780611bfa611c159260e051612274565b611c0760ff83168d611675565b5261079960ff82168c611675565b611bd9565b50919395979092949698611c446001600160401b03611c3d81610100511661169f565b921661169f565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a611c6e8c611366565b6101a0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093611cc0611610565b9201015201611bcd565b905060203d602011611cfb575b611ce481610180516113ba565b6020610180518092810103126101e6575190611b30565b503d611cd7565b9094506020813d602011611d2e575b81611d1e602093836113ba565b810103126101e657519338611ae1565b3d9150611d11565b611d549192503d806000833e611d4c81836113ba565b810190611598565b9038611aa1565b6020813d602011611d87575b81611d74602093836113ba565b810103126101e657516101405238611a71565b3d9150611d67565b611da59194503d806000833e611d4c81836113ba565b9238611a40565b909b506020813d602011611de0575b81611dc8602093836113ba565b810103126101e657611dd99061156a565b9a38611a10565b3d9150611dbb565b6020813d602011611e1c575b81611e01602093836113ba565b810103126101e657611e129061156a565b61010052386119da565b3d9150611df4565b909450610100813d61010011611ee8575b81611e4361010093836113ba565b810103126101e65760405190611e5882611382565b611e618161156a565b8252611e6f6020820161156a565b6020830152611e806040820161156a565b6040830152611e916060820161156a565b6060830152611ea26080820161157e565b6080830152611eb360a0820161157e565b60a083015260c081015164ffffffffff811681036101e65760c0830152611edc9060e001611548565b60e0820152933861199c565b3d9150611e35565b9092506020813d602011611f1c575b81611f0c602093836113ba565b810103126101e65751913861196a565b3d9150611eff565b9093506020813d602011611f50575b81611f40602093836113ba565b810103126101e657519238611939565b3d9150611f33565b9098506020813d602011611f84575b81611f74602093836113ba565b810103126101e657519738611908565b3d9150611f67565b9094506020813d602011611fb8575b81611fa8602093836113ba565b810103126101e6575193386118d7565b3d9150611f9b565b9091506020813d602011611fec575b81611fdc602093836113ba565b810103126101e6575190386118a6565b3d9150611fcf565b9094506020813d602011612020575b81612010602093836113ba565b810103126101e657519338611875565b3d9150612003565b90506020813d602011612052575b81612043602093836113ba565b810103126101e6575138611844565b3d9150612036565b9092506020813d602011612086575b81612076602093836113ba565b810103126101e65751913861180f565b3d9150612069565b9091506020813d6020116120c2575b816120aa602093836113ba565b810103126101e6576120bb90611556565b90386117de565b3d915061209d565b9091506020813d6020116120fe575b816120e6602093836113ba565b810103126101e6576120f790611556565b90386117ad565b3d91506120d9565b6020813d60201161213a575b8161211f602093836113ba565b810103126101e65761213090611548565b610120523861177c565b3d9150612112565b6040519061214f8261139e565b6040516101a08361215f8361134a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b604051906122038261139e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b03821682036101e657565b9061227d611610565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa92831561248357600093612521575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa918215612516576000926124e6575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa94851561245957908c979695949392916000956124cb575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa9889156124c057908c9160009a61248e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156124835760009e612464575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156124595760009d612427575b5082519d8e6123f58161134a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d8311612452575b61243e81836113ba565b8101031261244f5750519b386123e7565b80fd5b503d612434565b83513d6000823e3d90fd5b61247b908493929f3d8091833e611d4c81836113ba565b9d90916123b7565b85513d6000823e3d90fd5b9150988282813d83116124b9575b6124a681836113ba565b8101031261244f57508b90519838612378565b503d61249c565b84513d6000823e3d90fd5b6124df91953d8091833e611d4c81836113ba565b9338612344565b90918582813d831161250f575b6124fd81836113ba565b8101031261244f575051906004612301565b503d6124f3565b50513d6000823e3d90fd5b90928382813d83116125d3575b61253881836113ba565b8101031261244f57506125c760e086519261255284611382565b61255b81611548565b845261256960208201611556565b6020850152612579888201611556565b888501526125896060820161156a565b606085015261259a6080820161156a565b60808501526125ab60a0820161156a565b60a08501526125bc60c0820161156a565b60c085015201612260565b60e082015291386122be565b503d61252e565b91906125e46121f6565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa918215610953576000926127c1575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561095357600091612787575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156109535760009d612753575b50604051809e6126ff8261139e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d60201161277f575b8161276e602093836113ba565b8101031261244f5750519b386126f0565b3d9150612761565b906020823d6020116127b9575b816127a1602093836113ba565b8101031261244f57506127b390612260565b3861266f565b3d9150612794565b90916020823d6020116127ee575b816127dc602093836113ba565b8101031261244f57505190602061262b565b3d91506127cf565b6040519061280382611382565b8160e06000918281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b93919492946128416127f6565b5060018060a01b03918280835116968795604080926024825180998193638e8f294b60e01b835260049e8f840152165afa958615612b8d578a918a91600098612b47575b508351636eb1769f60e11b81526001600160a01b039384169281019283529216602082810191909152908190839081906040015b03818b5afa91821561245957600092612b18575b5082516370a0823160e01b81529a84168a8c0181905294818c6024818c5afa9485156124c057600095612ae4575b8451633af9e66960e01b8152808d018890529c50828d8b815a602492600091f196871561248357600097612ab0575b8c9d5085519d8e6305eff7ef60e21b81520152828d8b815a602492600091f1978815612483578c8b9c9d9e60009a612a63575b50865163bd6d894d60e01b81529b85918d9182906000905af19a8b15612a585760009b612a29575b5091836129b59c9d9e9281809501519388519e8f9586948593631fc58c3360e31b85528401526024830190611073565b0392165afa988915612459576000996129fa575b508251996129d68b611382565b8a528901528701526060860152608085015260a084015260c083015260e082015290565b90988982813d8311612a22575b612a1181836113ba565b8101031261244f57505197386129c9565b503d612a07565b909a8482813d8311612a51575b612a4081836113ba565b8101031261244f5750519983612985565b503d612a36565b86513d6000823e3d90fd5b8580989a9c9d5081949692509a929496989a3d8311612aa9575b612a8781836113ba565b8101031261244f5750918c97959391858c60009c9b999795519a91509b61295d565b503d612a7d565b969c8381813d8311612add575b612ac781836113ba565b81010312612ad9578c9d50519661292a565b8d80fd5b503d612abd565b949b8281813d8311612b11575b612afb81836113ba565b81010312612b0d578b9c5051946128fb565b8c80fd5b503d612af1565b90918282813d8311612b40575b612b2f81836113ba565b8101031261244f57505190386128cd565b503d612b25565b8093508480929993503d8311612b86575b612b6281836113ba565b8101031261244f5781518015150361244f57506020015194899089906128b9612885565b503d612b58565b82513d6000823e3d90fdfea2646970667358221220bd68fd7deedde79ab2ae03394bf8b713b2c0b9dc09760c8611521f23129d62ad64736f6c63430008100033", + "sourceMap": "1583:1980:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;2283:20:2;;1583:1980;;;;-1:-1:-1;;;;;1583:1980:2;;2283:20;;;;;;;1583:1980;2283:20;;;1583:1980;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::i;:::-;;;;;;;;;2425:10;;1583:1980;2437:15;1583:1980;;;;;2437:15;;;;1583:1980;;-1:-1:-1;;;2616:33:2;;-1:-1:-1;;;;;1583:1980:2;;;;2616:33;;1583:1980;;;;;;;;;;;;;;;;2616:33;1583:1980;-1:-1:-1;;;;;1583:1980:2;;2616:33;;;;;;;1583:1980;2616:33;;;2420:136;1583:1980;;;:::i;:::-;;8385:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8434:24:1;;1583:1980:2;;;;;;;;;;;;;;8434:24:1;;;;;;;1583:1980:2;8434:24:1;;;2420:136:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8494:30:1;;1583:1980:2;;;;;;;;;;;8494:30:1;;;;;;;1583:1980:2;8494:30:1;;;2420:136:2;-1:-1:-1;8621:18:1;;1583:1980:2;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8668:70:1;;1583:1980:2;;;;;;;;;;;;;;;;;8668:70:1;;;;;;1583:1980:2;;8668:70:1;;;2420:136:2;1583:1980;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;;;;:25;1583:1980:2;8828:25:1;;;8871:27;1583:1980:2;8871:27:1;;1583:1980:2;;8917:28:1;;1583:1980:2;8959:23:1;;;;;1583:1980:2;;;;;;;9001:28:1;;1583:1980:2;;9044:24:1;1583:1980:2;9044:24:1;;1583:1980:2;9092:33:1;1583:1980:2;9092:33:1;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9148:54:1;;1583:1980:2;;;;;;;9148:54:1;;1583:1980:2;9148:54:1;;;;;;;1583:1980:2;9148:54:1;;;2420:136:2;1583:1980;;;;;8959:23:1;1583:1980:2;;:::i;:::-;8959:23:1;1583:1980:2;;;;;8959:23:1;8576:633;;1583:1980:2;;;8959:23:1;8576:633;;1583:1980:2;;8959:23:1;8576:633;;1583:1980:2;8959:23:1;8576:633;;;1583:1980:2;;8959:23:1;8576:633;;1583:1980:2;;8959:23:1;8576:633;;1583:1980:2;;8959:23:1;8576:633;;1583:1980:2;8576:633:1;8959:23;8576:633;;1583:1980:2;8576:633:1;8959:23;8576:633;;1583:1980:2;8576:633:1;8959:23;8576:633;;1583:1980:2;;9311:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1583:1980:2;9411:3:1;1583:1980:2;9311:25:1;;9377;1583:1980:2;;;;;9373:36:1;;;;1583:1980:2;9436:71:1;1583:1980:2;9469:28:1;9411:3;1583:1980:2;;;;9469:28:1;;:::i;:::-;;9436:71;;:::i;:::-;9424:83;1583:1980:2;;;9424:83:1;;:::i;:::-;;;1583:1980:2;;;9424:83:1;;:::i;:::-;;9411:3;:::i;:::-;9360:11;;9373:36;-1:-1:-1;;1583:1980:2;9619:26:1;;;1583:1980:2;;9680:32:1;;;1583:1980:2;;9747:32:1;;1583:1980:2;8959:23:1;9800:18;;1583:1980:2;;;-1:-1:-1;;;9845:32:1;;-1:-1:-1;;;;;1583:1980:2;;;;9845:32:1;;1583:1980:2;-1:-1:-1;1583:1980:2;;;;;;;;;;;;9373:36:1;;;1583:1980:2;;;;;;;;9845:32:1;;;;;;;1583:1980:2;9845:32:1;;;9355:159;1583:1980:2;9930:16:1;;1583:1980:2;9930:16:1;;1583:1980:2;;;;;;;;9982:15:1;10020:20;1583:1980:2;10020:20:1;;1583:1980:2;10072:29:1;8576:633;10072:29;;1583:1980:2;10124:20:1;8576:633;10124:20;;1583:1980:2;10176:29:1;1583:1980:2;8576:633:1;10176:29;;1583:1980:2;10235:27:1;;1583:1980:2;;;;;;;;;:::i;:::-;8959:23:1;1583:1980:2;;;9533:738:1;1583:1980:2;;9533:738:1;;1583:1980:2;;9533:738:1;;1583:1980:2;8959:23:1;9533:738;;1583:1980:2;;9533:738:1;;1583:1980:2;;9533:738:1;;1583:1980:2;;9533:738:1;;1583:1980:2;8576:633:1;9533:738;;1583:1980:2;8576:633:1;9533:738;;1583:1980:2;8576:633:1;9533:738;;1583:1980:2;;9533:738:1;;1583:1980:2;9533:738:1;;;1583:1980:2;9533:738:1;;;1583:1980:2;;;;;;;:::i;:::-;;;;2575:173;;1583:1980;;;;;;2575:173;;1583:1980;;;;;;;;;8959:23:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8576:633:1;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;9845:32:1;;;1583:1980:2;9845:32:1;;1583:1980:2;9845:32:1;;;;;;1583:1980:2;9845:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;;1583:1980:2;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;1583:1980:2;9148:54:1;;1583:1980:2;9148:54:1;;;;;;1583:1980:2;9148:54:1;;;:::i;:::-;;;1583:1980:2;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;1583:1980:2;;;;;;;;;;;;8668:70:1;1583:1980:2;8668:70:1;;1583:1980:2;8668:70:1;;;;;;1583:1980:2;8668:70:1;;;:::i;:::-;;;1583:1980:2;;;;;;8668:70:1;;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;1583:1980:2;8494:30:1;;1583:1980:2;8494:30:1;;;;;;1583:1980:2;8494:30:1;;;:::i;:::-;;;1583:1980:2;;;;;8494:30:1;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;1583:1980:2;8434:24:1;;1583:1980:2;8434:24:1;;;;;;1583:1980:2;8434:24:1;;;:::i;:::-;;;1583:1980:2;;;;;8434:24:1;;;;;;-1:-1:-1;8434:24:1;;2616:33:2;;;;1583:1980;2616:33;;1583:1980;2616:33;;;;;;1583:1980;2616:33;;;:::i;:::-;;;1583:1980;;;;;2616:33;;;;;;;-1:-1:-1;2616:33:2;;2454:3;1583:1980;;;;;;;;;;;;;;;;;;;;2479:70;1583:1980;;;;;;;;;;;;;;;;;;;:::i;:::-;2479:70;;;:::i;:::-;2467:82;;1583:1980;2467:82;;:::i;:::-;;;;1583:1980;2467:82;;:::i;:::-;-1:-1:-1;;;1583:1980:2;;;;;;2425:10;;1583:1980;;;;;:::i;:::-;;;;;;;;;;;2283:20;;;1583:1980;2283:20;;1583:1980;2283:20;;;;;;1583:1980;2283:20;;;:::i;:::-;;;1583:1980;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;2283:20;;;;;;-1:-1:-1;2283:20:2;;1583:1980;;;;;;-1:-1:-1;;1583:1980:2;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8385:12:1;;;:::i;:::-;1583:1980:2;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1583:1980:2;;;;8434:24:1;;1583:1980:2;;;;;;;8434:24:1;;1583:1980:2;;;;;;;;8434:24:1;;;;;;;1583:1980:2;8434:24:1;;;1583:1980:2;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1583:1980:2;;;;8494:30:1;;1583:1980:2;;;;8434:24:1;;1583:1980:2;;;;;;;;8494:30:1;;;;;;;1583:1980:2;8494:30:1;;;1583:1980:2;-1:-1:-1;8621:18:1;;1583:1980:2;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1583:1980:2;;;;8668:70:1;;1583:1980:2;;;;;;;;;;;;;8434:24:1;1583:1980:2;;;;8668:70:1;;;;;;;1583:1980:2;8668:70:1;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;;;;:25;1583:1980:2;8828:25:1;;;8871:27;1583:1980:2;8871:27:1;;1583:1980:2;;8917:28:1;;1583:1980:2;8959:23:1;;;;;1583:1980:2;;;;;;;9001:28:1;;1583:1980:2;;9044:24:1;;;;1583:1980:2;9092:33:1;8434:24;9092:33;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;9148:54:1;;1583:1980:2;;;;;;;9148:54:1;;1583:1980:2;9148:54:1;;;;;;;1583:1980:2;9148:54:1;;;1583:1980:2;;8434:24:1;1583:1980:2;;;;;;;;:::i;:::-;;;8576:633:1;1583:1980:2;;;8576:633:1;;1583:1980:2;;8576:633:1;;1583:1980:2;8959:23:1;8576:633;;1583:1980:2;;8576:633:1;;1583:1980:2;9044:24:1;8576:633;;1583:1980:2;;8576:633:1;;1583:1980:2;8576:633:1;;;1583:1980:2;8576:633:1;;;1583:1980:2;8576:633:1;;;1583:1980:2;;9311:25:1;;;1583:1980:2;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1583:1980:2;9411:3:1;1583:1980:2;9311:25:1;;9377;1583:1980:2;;;;;9373:36:1;;;;1583:1980:2;9436:71:1;1583:1980:2;9469:28:1;9411:3;1583:1980:2;;;;9469:28:1;;:::i;:::-;;9436:71;;:::i;:::-;9424:83;1583:1980:2;;;9424:83:1;;:::i;:::-;;;1583:1980:2;;;9424:83:1;;:::i;9411:3::-;9360:11;;9373:36;9845:32;9373:36;;;;;;8434:24;9619:26;;1583:1980:2;9680:32:1;1583:1980:2;9680:32:1;;1583:1980:2;9747:32:1;8434:24;1583:1980:2;9747:32:1;;1583:1980:2;9800:18:1;8959:23;9800:18;;1583:1980:2;;;;;;;;;;;;9845:32:1;;;1583:1980:2;9845:32:1;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;9845:32:1;;;-1:-1:-1;;;;;1583:1980:2;9845:32:1;;;;;;;1583:1980:2;9845:32:1;;;9355:159;1583:1980:2;9930:16:1;;9044:24;9930:16;;1583:1980:2;;;;;;;;9982:15:1;10020:20;1583:1980:2;10020:20:1;;1583:1980:2;10072:29:1;8576:633;10072:29;;1583:1980:2;10124:20:1;8576:633;10124:20;;1583:1980:2;10176:29:1;1583:1980:2;8576:633:1;10176:29;;1583:1980:2;10235:27:1;;1583:1980:2;;8434:24:1;1583:1980:2;;;;;;;;:::i;:::-;;;9533:738:1;1583:1980:2;;9533:738:1;;1583:1980:2;;9533:738:1;;1583:1980:2;8959:23:1;9533:738;;1583:1980:2;;9533:738:1;;1583:1980:2;9044:24:1;9533:738;;1583:1980:2;;9533:738:1;;1583:1980:2;8576:633:1;9533:738;;1583:1980:2;8576:633:1;9533:738;;1583:1980:2;8576:633:1;9533:738;;1583:1980:2;;9533:738:1;;1583:1980:2;9533:738:1;;;1583:1980:2;9533:738:1;;;1583:1980:2;;;;;;8434:24:1;1583:1980:2;;8434:24:1;1583:1980:2;;;;:::i;9845:32:1:-;;;8434:24;9845:32;;8434:24;9845:32;;;;;;8434:24;9845:32;;;:::i;:::-;;;1583:1980:2;;;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;1583:1980:2;8434:24:1;1583:1980:2;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;8434:24;9148:54;;8434:24;9148:54;;;;;;8434:24;9148:54;;;:::i;:::-;;;1583:1980:2;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;8668:70;;;8434:24;8668:70;;8434:24;8668:70;;;;;;8434:24;8668:70;;;:::i;:::-;;;1583:1980:2;;;;;8668:70:1;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;;8434:24;8494:30;;8434:24;8494:30;;;;;;8434:24;8494:30;;;:::i;:::-;;;1583:1980:2;;;;;8494:30:1;;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;8434:24:1;;;;;;;-1:-1:-1;8434:24:1;;1583:1980:2;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;-1:-1:-1;;1583:1980:2;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;4218:18:1;;1583:1980:2;;;;4218:18:1;;;;;;;;;;;:::o;6179:2007::-;;;-1:-1:-1;1583:1980:2;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;6270:17:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6270:17:1;;;;;;-1:-1:-1;1583:1980:2;6270:17:1;;;6179:2007;1583:1980:2;;;;;;;6313:17:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;;6179:2007;1583:1980:2;;;;;;;6365:26:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;;6179:2007;1583:1980:2;;;;;;;6414:21:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;;6179:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6467:26:1;;6179:2007;6270:15;1583:1980:2;;;;6270:17:1;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;6467:26:1;;;;;;;-1:-1:-1;6467:26:1;;;6179:2007;1583:1980:2;;;;;;;6530:31:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;;6179:2007;1583:1980:2;;;;;;;6598:31:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;;6179:2007;1583:1980:2;;;;;;;6660:25:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;;6179:2007;1583:1980:2;;;;;;;6710:22:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;;6179:2007;1583:1980:2;;;;;;;6757:19:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;;6179:2007;1583:1980:2;;;;;;;6801:19:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;;6179:2007;1583:1980:2;;;;;;;6865:19:1;;1583:1980:2;;6270:17:1;1583:1980:2;;;;;;6179:2007:1;6270:15;1583:1980:2;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;;6179:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;6917:32:1;;6270:17;6917:32;;1583:1980:2;;;6179:2007:1;6270:15;1583:1980:2;;;;;;;;-1:-1:-1;;;;;1583:1980:2;6917:32:1;;;;;;-1:-1:-1;1583:1980:2;6917:32:1;;;6179:2007;1583:1980:2;;;;;;;6982:32:1;;6270:17;6982:32;;1583:1980:2;;;;;;;;;;6179:2007:1;6270:15;1583:1980:2;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;;6179:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7104:25:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6270:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7104:25:1;;;;;;;-1:-1:-1;7104:25:1;;;6179:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7147:27:1;;1583:1980:2;;6270:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7147:27:1;;;;;;-1:-1:-1;1583:1980:2;7147:27:1;;;6179:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7216:23:1;;1583:1980:2;-1:-1:-1;1583:1980:2;6270:17:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;7216:23:1;;;;;;;-1:-1:-1;7216:23:1;;;6179:2007;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;7291:34:1;;-1:-1:-1;;;;;1583:1980:2;;;6270:17:1;7291:34;;1583:1980:2;;6270:15:1;1583:1980:2;;;;;;;;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;;6179:2007;-1:-1:-1;1583:1980:2;;7349:42:1;;;;-1:-1:-1;;;7349:42:1;;;1583:1980:2;6270:15:1;7349:42;;-1:-1:-1;;;;;1583:1980:2;;;6270:17:1;7349:42;;;1583:1980:2;7349:42:1;;1583:1980:2;;;;7349:42:1;;1583:1980:2;;7349:42:1;;;1583:1980:2;7349:42:1;;;;-1:-1:-1;7349:42:1;1583:1980:2;7349:42:1;;;6179:2007;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;;;;;7050:348:1;;1583:1980:2;;;;;7050:348:1;;1583:1980:2;;;7050:348:1;;1583:1980:2;;;7050:348:1;;1583:1980:2;;;;;;;;;7050:348:1;;1583:1980:2;;;7050:348:1;;1583:1980:2;6179:2007:1;1583:1980:2;7050:348:1;;1583:1980:2;;;;6253:34:1;1583:1980:2;;:::i;:::-;;;;;;;;:::i;:::-;;;6253:34:1;1583:1980:2;;;;;;;;6253:34:1;1583:1980:2;;:::i;:::-;;-1:-1:-1;1583:1980:2;;;;;;7482:11:1;;-1:-1:-1;7510:3:1;1583:1980:2;;6253:34:1;1583:1980:2;;;;7495:13:1;;;;7535:24;;7510:3;7535:24;6179:2007;7535:24;;:::i;:::-;7523:36;1583:1980:2;;;7523:36:1;;:::i;:::-;;;1583:1980:2;;;7523:36:1;;:::i;7510:3::-;7482:11;;7495:13;;;;;;;;;;;7900:38;-1:-1:-1;;;;;7809:38:1;6890:59;1583:1980:2;6890:59:1;1583:1980:2;7809:38:1;:::i;:::-;1583:1980:2;;7900:38:1;:::i;:::-;8004:27;1583:1980:2;;8004:27:1;1583:1980:2;8004:27:1;;4218:18;1583:1980:2;8097:27:1;;4218:18;1583:1980:2;;;;;;;;:::i;:::-;;;;;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;6179:2007:1;7585:596;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;;7585:596:1;;1583:1980:2;6179:2007:1;:::o;1583:1980:2:-;;;;;;;;:::i;:::-;;;;;;;;7349:42:1;;;1583:1980:2;7349:42:1;1583:1980:2;7349:42:1;;;;;;;;;:::i;:::-;1583:1980:2;7349:42:1;1583:1980:2;7349:42:1;;;;1583:1980:2;;;;;7349:42:1;;;;;;;;7291:34;;;;1583:1980:2;7291:34:1;;1583:1980:2;7291:34:1;;;;;;1583:1980:2;7291:34:1;;;:::i;:::-;;;1583:1980:2;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;7216:23;;;;;;;-1:-1:-1;7216:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7147:27;1583:1980:2;7147:27:1;;1583:1980:2;7147:27:1;;;;;;1583:1980:2;7147:27:1;;;:::i;:::-;;;1583:1980:2;;;;;;7147:27:1;;;;;;;-1:-1:-1;7147:27:1;;7104:25;;;;;;;-1:-1:-1;7104:25:1;;;;;;:::i;:::-;;;;;6982:32;;;;1583:1980:2;6982:32:1;;1583:1980:2;6982:32:1;;;;;;1583:1980:2;6982:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;6917;1583:1980:2;6917:32:1;;1583:1980:2;6917:32:1;;;;;;1583:1980:2;6917:32:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6917:32:1;;;;;;;-1:-1:-1;6917:32:1;;6865:19;;;;1583:1980:2;6865:19:1;;1583:1980:2;6865:19:1;;;;;;1583:1980:2;6865:19:1;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1583:1980:2;;:::i;:::-;6179:2007:1;1583:1980:2;;;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;6801;;;;1583:1980:2;6801:19:1;;1583:1980:2;6801:19:1;;;;;;1583:1980:2;6801:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;6757;;;;1583:1980:2;6757:19:1;;1583:1980:2;6757:19:1;;;;;;1583:1980:2;6757:19:1;;;:::i;:::-;;;1583:1980:2;;;;;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;6710:22;;;;1583:1980:2;6710:22:1;;1583:1980:2;6710:22:1;;;;;;1583:1980:2;6710:22:1;;;:::i;:::-;;;1583:1980:2;;;;;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;6660:25;;;;1583:1980:2;6660:25:1;;1583:1980:2;6660:25:1;;;;;;1583:1980:2;6660:25:1;;;:::i;:::-;;;1583:1980:2;;;;;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;6598:31;;;;1583:1980:2;6598:31:1;;1583:1980:2;6598:31:1;;;;;;1583:1980:2;6598:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;6530;;;;1583:1980:2;6530:31:1;;1583:1980:2;6530:31:1;;;;;;1583:1980:2;6530:31:1;;;:::i;:::-;;;1583:1980:2;;;;;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;6467:26;;;1583:1980:2;6467:26:1;;1583:1980:2;6467:26:1;;;;;;1583:1980:2;6467:26:1;;;:::i;:::-;;;1583:1980:2;;;;;6467:26:1;;;;;;-1:-1:-1;6467:26:1;;6414:21;;;;1583:1980:2;6414:21:1;;1583:1980:2;6414:21:1;;;;;;1583:1980:2;6414:21:1;;;:::i;:::-;;;1583:1980:2;;;;;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;6365:26;;;;1583:1980:2;6365:26:1;;1583:1980:2;6365:26:1;;;;;;1583:1980:2;6365:26:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;6313:17;;;;1583:1980:2;6313:17:1;;1583:1980:2;6313:17:1;;;;;;1583:1980:2;6313:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;6270;1583:1980:2;6270:17:1;;1583:1980:2;6270:17:1;;;;;;1583:1980:2;6270:17:1;;;:::i;:::-;;;1583:1980:2;;;;;;;:::i;:::-;;6270:17:1;;;;;;;-1:-1:-1;6270:17:1;;1583:1980:2;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1583:1980:2;;;;;;:::o;10280:782:1:-;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;10416:25:1;;1583:1980:2;;;;10416:25:1;;;1583:1980:2;;-1:-1:-1;;;;;1583:1980:2;;;;;10416:25:1;;1583:1980:2;;;;10416:25:1;;;;;;;-1:-1:-1;10416:25:1;;;10280:782;1583:1980:2;;10504:15:1;;;;1583:1980:2;;;;;;-1:-1:-1;;;;;10547:32:1;10416:25;10547:32;;;;1583:1980:2;;;;;;;;;;;;;;10599:33:1;;;;;;;;;-1:-1:-1;10599:33:1;;;10280:782;10669:35;10416:25;10669:35;;1583:1980:2;10669:35:1;;1583:1980:2;;10733:27:1;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;10776:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10776:29:1;;;10280:782;10837:19;;;;1583:1980:2;;;;;;;;;;;;;;;10822:35:1;;10416:25;10822:35;;1583:1980:2;10822:35:1;;;;;;;;;;-1:-1:-1;10822:35:1;;;10280:782;1583:1980:2;;;10918:19:1;1583:1980:2;10918:19:1;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;;;;;;;;;;;;;;;10955:31:1;;;;10416:25;10955:31;-1:-1:-1;10955:31:1;;;;;;;-1:-1:-1;10955:31:1;;;10280:782;-1:-1:-1;1583:1980:2;;;-1:-1:-1;;;11009:39:1;;1583:1980:2;;10416:25:1;11009:39;;1583:1980:2;;;;;;;11009:39:1;;1583:1980:2;11009:39:1;;;;;;;-1:-1:-1;11009:39:1;;;10280:782;1583:1980:2;;;;;;;;:::i;:::-;;10461:596:1;;1583:1980:2;10461:596:1;;1583:1980:2;10461:596:1;;;1583:1980:2;10547:32:1;10461:596;;1583:1980:2;;10461:596:1;;1583:1980:2;10733:27:1;10461:596;;1583:1980:2;;10461:596:1;;1583:1980:2;10461:596:1;;1583:1980:2;10461:596:1;;;1583:1980:2;10461:596:1;;;1583:1980:2;10280:782:1;:::o;11009:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;11009:39:1;;;;1583:1980:2;;;11009:39:1;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10955:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10822:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;10822:35:1;;;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10776:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10599:33;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;10416:25:1;10599:33;;;;;;;;1583:1980:2;;;-1:-1:-1;1583:1980:2;;;;;10416:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10416:25:1;;;;;;;;;11066:925;;;1583:1980:2;;:::i;:::-;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11366:63:1;;-1:-1:-1;;;;;1583:1980:2;;;11366:63:1;;;1583:1980:2;;;;;;;;;;;;;;;11366:63:1;1583:1980:2;;;;11366:63:1;;;;;;;-1:-1:-1;11366:63:1;;;11066:925;-1:-1:-1;1583:1980:2;;;;-1:-1:-1;;;11448:57:1;;-1:-1:-1;;;;;1583:1980:2;;;11366:63:1;11448:57;;1583:1980:2;;;;;;;;;11366:63:1;;1583:1980:2;;;;;;11448:57:1;;;;;;;-1:-1:-1;11448:57:1;;;11066:925;-1:-1:-1;11366:63:1;11533:22;;1583:1980:2;;11575:14:1;;;1583:1980:2;11626:31:1;;;1583:1980:2;;11686:23:1;;1583:1980:2;11725:10:1;;;;11752:11;;;1583:1980:2;;11784:15:1;;1583:1980:2;11820:15:1;;;1583:1980:2;11853:12:1;;;;11888:17;;;1583:1980:2;;;;;-1:-1:-1;;;11930:47:1;;-1:-1:-1;;;;;1583:1980:2;;;11366:63:1;11930:47;;1583:1980:2;;11853:12:1;;1583:1980:2;;;;;;;;;;11725:10:1;;1583:1980:2;;;;;11930:47:1;;1583:1980:2;11930:47:1;11366:63;11930:47;;;;;;;-1:-1:-1;11930:47:1;;;11066:925;1583:1980:2;;;;;;;;:::i;:::-;;;11366:63:1;11265:721;1583:1980:2;-1:-1:-1;;;;;1583:1980:2;;11265:721:1;;1583:1980:2;11725:10:1;11265:721;;1583:1980:2;11626:31:1;11265:721;;1583:1980:2;;11265:721:1;;1583:1980:2;11752:11:1;11265:721;;1583:1980:2;;11265:721:1;;1583:1980:2;11820:15:1;11265:721;;1583:1980:2;11853:12:1;11265:721;;1583:1980:2;11888:17:1;11265:721;;1583:1980:2;11265:721:1;;;1583:1980:2;11265:721:1;;;1583:1980:2;11265:721:1;;;1583:1980:2;11066:925:1;:::o;11930:47::-;;;11366:63;11930:47;;11366:63;11930:47;;;;;;11366:63;11930:47;;;:::i;:::-;;;1583:1980:2;;;;;;11930:47:1;;;;;;;-1:-1:-1;11930:47:1;;11448:57;;11366:63;11448:57;;11366:63;11448:57;;;;;;11366:63;11448:57;;;:::i;:::-;;;1583:1980:2;;;;;;;;:::i;:::-;11448:57:1;;;;;;-1:-1:-1;11448:57:1;;11366:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980:2;;;;-1:-1:-1;1583:1980:2;;11366:63:1;;;;;;-1:-1:-1;11366:63:1;;1583:1980:2;;;;;;;:::i;:::-;;;-1:-1:-1;1583:1980:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2757:804::-;;;;;;1583:1980;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:36;;;;;;;1583:1980;;3056:36;;;;;;;1583:1980;;;;-1:-1:-1;3056:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3181:34:2;;-1:-1:-1;;;;;1583:1980:2;;;3181:34;;;1583:1980;;;;;;;;;;;;;;;;;;;;;;3181:34;;;;;;;;;;;-1:-1:-1;3181:34:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3234:25:2;;1583:1980;;;3234:25;;;1583:1980;;;;3234:25;1583:1980;;;3234:25;;;;;;;;-1:-1:-1;3234:25:2;;;2757:804;1583:1980;;-1:-1:-1;;;3288:35:2;;;;;1583:1980;;;;-1:-1:-1;3288:35:2;1583:1980;3288:35;1583:1980;3288:35;1583:1980;3288:35;-1:-1:-1;3288:35:2;;;;;;;-1:-1:-1;3288:35:2;;;2757:804;1583:1980;;;;;;;;;;3348:36;;;1583:1980;3348:36;;;;;1583:1980;3348:36;-1:-1:-1;3348:36:2;;;;;;;;;;;;-1:-1:-1;3348:36:2;;;2757:804;-1:-1:-1;1583:1980:2;;-1:-1:-1;;;3452:28:2;;1583:1980;;;;;;;-1:-1:-1;;3452:28:2;;;;;;;-1:-1:-1;3452:28:2;;;2757:804;3515:31;;;1583:1980;3515:31;;;;;;;;;1583:1980;;;;;;;;;;;;;3497:50;;;;1583:1980;;;;;;:::i;:::-;3497:50;1583:1980;;3497:50;;;;;;;-1:-1:-1;3497:50:2;;;2757:804;1583:1980;;;;;;;:::i;:::-;;;3112:444;;1583:1980;3112:444;;1583:1980;3112:444;;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;3112:444;;;1583:1980;;3112:444;;1583:1980;2757:804;:::o;3497:50::-;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3497:50;;;;;;;;;3452:28;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;-1:-1:-1;1583:1980:2;;;3452:28;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;;3348:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;3348:36;;;;;;;;;;;3288:35;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3288:35;;;1583:1980;;;;3288:35;;;;;3234:25;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;3234:25;;;1583:1980;;;;3234:25;;;;;3181:34;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;3181:34;;;;;;;;;3056:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1583:1980;;;;;;;;;;;;-1:-1:-1;1583:1980:2;;;;;;;;3181:34;3056:36;;;;;;;;1583:1980;;;-1:-1:-1;1583:1980:2;;;;", "linkReferences": {} }, "methodIdentifiers": { @@ -1072,7 +1072,7 @@ "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest\",\"name\":\"cTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest[]\",\"name\":\"cTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"}],\"internalType\":\"struct CompoundV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b\",\"dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract PriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest\",\"name\":\"cTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"cTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comptroller\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract CToken\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"priceOracleSymbol\",\"type\":\"string\"}],\"internalType\":\"struct CompoundV2Query.CTokenRequest[]\",\"name\":\"cTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"cToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceUnderlying\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exchangeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct CompoundV2Query.CTokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"}],\"internalType\":\"struct CompoundV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/CompoundV2Query.sol\":\"CompoundV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc\",\"dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36\"]},\"Sleuth/CompoundV2Query.sol\":{\"keccak256\":\"0xd54a2e79c92cec98595c15b8ec775231edd93ca35e0c6bd195c42c5e9093e0d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b512447001f0f78c98ecf3440d6aa4cbcd357b501e1e72e75a0fb97da1e84020\",\"dweb:/ipfs/QmaEuJdmuSP3bKGcBHYtji85FC3c4jxrS9rq2yrVVp2pvR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1534,9 +1534,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -1946,9 +1946,9 @@ "type": "uint256" }, { - "internalType": "uint256", + "internalType": "int256", "name": "balance", - "type": "uint256" + "type": "int256" }, { "internalType": "uint256", @@ -2162,10 +2162,10 @@ }, "sources": { "Sleuth/CometQuery.sol": { - "keccak256": "0xa09fba58ee13ace56820af0fe1687dbc305dfd9b3b19b41dcbd77c3b95945980", + "keccak256": "0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c", "urls": [ - "bzz-raw://52fd3e614f4d33d588647cec4bdff87d0cef77cc1cbb90b939936b14a601735b", - "dweb:/ipfs/QmZtVKAeWLHZZB1XAh46fPVpdT3UAgj5ScrTJgyx4R1UvZ" + "bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc", + "dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36" ], "license": "UNLICENSED" }, @@ -2182,35 +2182,35 @@ }, "ast": { "absolutePath": "Sleuth/CompoundV2Query.sol", - "id": 1629, + "id": 1635, "exportedSymbols": { "CToken": [ - 1351 + 1357 ], "Comet": [ 598 ], "CometQuery": [ - 1272 + 1278 ], "CompoundV2Query": [ - 1628 + 1634 ], "Comptroller": [ - 1427 + 1433 ], "ERC20": [ 630 ], "PriceOracle": [ - 1435 + 1441 ] }, "nodeType": "SourceUnit", "src": "39:3525:2", "nodes": [ { - "id": 1274, + "id": 1280, "nodeType": "PragmaDirective", "src": "39:24:2", "literals": [ @@ -2221,24 +2221,24 @@ ] }, { - "id": 1275, + "id": 1281, "nodeType": "ImportDirective", "src": "65:26:2", "absolutePath": "Sleuth/CometQuery.sol", "file": "./CometQuery.sol", "nameLocation": "-1:-1:-1", - "scope": 1629, - "sourceUnit": 1273, + "scope": 1635, + "sourceUnit": 1279, "symbolAliases": [], "unitAlias": "" }, { - "id": 1351, + "id": 1357, "nodeType": "ContractDefinition", "src": "93:723:2", "nodes": [ { - "id": 1281, + "id": 1287, "nodeType": "FunctionDefinition", "src": "114:54:2", "functionSelector": "5fe3b567", @@ -2248,47 +2248,47 @@ "name": "comptroller", "nameLocation": "123:11:2", "parameters": { - "id": 1276, + "id": 1282, "nodeType": "ParameterList", "parameters": [], "src": "134:2:2" }, "returnParameters": { - "id": 1280, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1279, + "id": 1285, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1281, + "scope": 1287, "src": "155:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" }, "typeName": { - "id": 1278, + "id": 1284, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1277, + "id": 1283, "name": "Comptroller", "nameLocations": [ "155:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1427, + "referencedDeclaration": 1433, "src": "155:11:2" }, - "referencedDeclaration": 1427, + "referencedDeclaration": 1433, "src": "155:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" } }, @@ -2297,13 +2297,13 @@ ], "src": "154:13:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1290, + "id": 1296, "nodeType": "FunctionDefinition", "src": "172:68:2", "functionSelector": "a9059cbb", @@ -2313,17 +2313,17 @@ "name": "transfer", "nameLocation": "181:8:2", "parameters": { - "id": 1286, + "id": 1292, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1283, + "id": 1289, "mutability": "mutable", "name": "dst", "nameLocation": "198:3:2", "nodeType": "VariableDeclaration", - "scope": 1290, + "scope": 1296, "src": "190:11:2", "stateVariable": false, "storageLocation": "default", @@ -2332,7 +2332,7 @@ "typeString": "address" }, "typeName": { - "id": 1282, + "id": 1288, "name": "address", "nodeType": "ElementaryTypeName", "src": "190:7:2", @@ -2346,12 +2346,12 @@ }, { "constant": false, - "id": 1285, + "id": 1291, "mutability": "mutable", "name": "amount", "nameLocation": "208:6:2", "nodeType": "VariableDeclaration", - "scope": 1290, + "scope": 1296, "src": "203:11:2", "stateVariable": false, "storageLocation": "default", @@ -2360,7 +2360,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1284, + "id": 1290, "name": "uint", "nodeType": "ElementaryTypeName", "src": "203:4:2", @@ -2375,17 +2375,17 @@ "src": "189:26:2" }, "returnParameters": { - "id": 1289, + "id": 1295, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1288, + "id": 1294, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1290, + "scope": 1296, "src": "234:4:2", "stateVariable": false, "storageLocation": "default", @@ -2394,7 +2394,7 @@ "typeString": "bool" }, "typeName": { - "id": 1287, + "id": 1293, "name": "bool", "nodeType": "ElementaryTypeName", "src": "234:4:2", @@ -2408,13 +2408,13 @@ ], "src": "233:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1301, + "id": 1307, "nodeType": "FunctionDefinition", "src": "244:85:2", "functionSelector": "23b872dd", @@ -2424,17 +2424,17 @@ "name": "transferFrom", "nameLocation": "253:12:2", "parameters": { - "id": 1297, + "id": 1303, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1292, + "id": 1298, "mutability": "mutable", "name": "src", "nameLocation": "274:3:2", "nodeType": "VariableDeclaration", - "scope": 1301, + "scope": 1307, "src": "266:11:2", "stateVariable": false, "storageLocation": "default", @@ -2443,7 +2443,7 @@ "typeString": "address" }, "typeName": { - "id": 1291, + "id": 1297, "name": "address", "nodeType": "ElementaryTypeName", "src": "266:7:2", @@ -2457,12 +2457,12 @@ }, { "constant": false, - "id": 1294, + "id": 1300, "mutability": "mutable", "name": "dst", "nameLocation": "287:3:2", "nodeType": "VariableDeclaration", - "scope": 1301, + "scope": 1307, "src": "279:11:2", "stateVariable": false, "storageLocation": "default", @@ -2471,7 +2471,7 @@ "typeString": "address" }, "typeName": { - "id": 1293, + "id": 1299, "name": "address", "nodeType": "ElementaryTypeName", "src": "279:7:2", @@ -2485,12 +2485,12 @@ }, { "constant": false, - "id": 1296, + "id": 1302, "mutability": "mutable", "name": "amount", "nameLocation": "297:6:2", "nodeType": "VariableDeclaration", - "scope": 1301, + "scope": 1307, "src": "292:11:2", "stateVariable": false, "storageLocation": "default", @@ -2499,7 +2499,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1295, + "id": 1301, "name": "uint", "nodeType": "ElementaryTypeName", "src": "292:4:2", @@ -2514,17 +2514,17 @@ "src": "265:39:2" }, "returnParameters": { - "id": 1300, + "id": 1306, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1299, + "id": 1305, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1301, + "scope": 1307, "src": "323:4:2", "stateVariable": false, "storageLocation": "default", @@ -2533,7 +2533,7 @@ "typeString": "bool" }, "typeName": { - "id": 1298, + "id": 1304, "name": "bool", "nodeType": "ElementaryTypeName", "src": "323:4:2", @@ -2547,13 +2547,13 @@ ], "src": "322:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1310, + "id": 1316, "nodeType": "FunctionDefinition", "src": "333:71:2", "functionSelector": "095ea7b3", @@ -2563,17 +2563,17 @@ "name": "approve", "nameLocation": "342:7:2", "parameters": { - "id": 1306, + "id": 1312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1303, + "id": 1309, "mutability": "mutable", "name": "spender", "nameLocation": "358:7:2", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1316, "src": "350:15:2", "stateVariable": false, "storageLocation": "default", @@ -2582,7 +2582,7 @@ "typeString": "address" }, "typeName": { - "id": 1302, + "id": 1308, "name": "address", "nodeType": "ElementaryTypeName", "src": "350:7:2", @@ -2596,12 +2596,12 @@ }, { "constant": false, - "id": 1305, + "id": 1311, "mutability": "mutable", "name": "amount", "nameLocation": "372:6:2", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1316, "src": "367:11:2", "stateVariable": false, "storageLocation": "default", @@ -2610,7 +2610,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1304, + "id": 1310, "name": "uint", "nodeType": "ElementaryTypeName", "src": "367:4:2", @@ -2625,17 +2625,17 @@ "src": "349:30:2" }, "returnParameters": { - "id": 1309, + "id": 1315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1308, + "id": 1314, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1310, + "scope": 1316, "src": "398:4:2", "stateVariable": false, "storageLocation": "default", @@ -2644,7 +2644,7 @@ "typeString": "bool" }, "typeName": { - "id": 1307, + "id": 1313, "name": "bool", "nodeType": "ElementaryTypeName", "src": "398:4:2", @@ -2658,13 +2658,13 @@ ], "src": "397:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1319, + "id": 1325, "nodeType": "FunctionDefinition", "src": "408:80:2", "functionSelector": "dd62ed3e", @@ -2674,17 +2674,17 @@ "name": "allowance", "nameLocation": "417:9:2", "parameters": { - "id": 1315, + "id": 1321, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1312, + "id": 1318, "mutability": "mutable", "name": "owner", "nameLocation": "435:5:2", "nodeType": "VariableDeclaration", - "scope": 1319, + "scope": 1325, "src": "427:13:2", "stateVariable": false, "storageLocation": "default", @@ -2693,7 +2693,7 @@ "typeString": "address" }, "typeName": { - "id": 1311, + "id": 1317, "name": "address", "nodeType": "ElementaryTypeName", "src": "427:7:2", @@ -2707,12 +2707,12 @@ }, { "constant": false, - "id": 1314, + "id": 1320, "mutability": "mutable", "name": "spender", "nameLocation": "450:7:2", "nodeType": "VariableDeclaration", - "scope": 1319, + "scope": 1325, "src": "442:15:2", "stateVariable": false, "storageLocation": "default", @@ -2721,7 +2721,7 @@ "typeString": "address" }, "typeName": { - "id": 1313, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", "src": "442:7:2", @@ -2737,17 +2737,17 @@ "src": "426:32:2" }, "returnParameters": { - "id": 1318, + "id": 1324, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1317, + "id": 1323, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1319, + "scope": 1325, "src": "482:4:2", "stateVariable": false, "storageLocation": "default", @@ -2756,7 +2756,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1316, + "id": 1322, "name": "uint", "nodeType": "ElementaryTypeName", "src": "482:4:2", @@ -2770,13 +2770,13 @@ ], "src": "481:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1326, + "id": 1332, "nodeType": "FunctionDefinition", "src": "492:63:2", "functionSelector": "70a08231", @@ -2786,17 +2786,17 @@ "name": "balanceOf", "nameLocation": "501:9:2", "parameters": { - "id": 1322, + "id": 1328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1321, + "id": 1327, "mutability": "mutable", "name": "owner", "nameLocation": "519:5:2", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1332, "src": "511:13:2", "stateVariable": false, "storageLocation": "default", @@ -2805,7 +2805,7 @@ "typeString": "address" }, "typeName": { - "id": 1320, + "id": 1326, "name": "address", "nodeType": "ElementaryTypeName", "src": "511:7:2", @@ -2821,17 +2821,17 @@ "src": "510:15:2" }, "returnParameters": { - "id": 1325, + "id": 1331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1324, + "id": 1330, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1326, + "scope": 1332, "src": "549:4:2", "stateVariable": false, "storageLocation": "default", @@ -2840,7 +2840,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1323, + "id": 1329, "name": "uint", "nodeType": "ElementaryTypeName", "src": "549:4:2", @@ -2854,13 +2854,13 @@ ], "src": "548:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1333, + "id": 1339, "nodeType": "FunctionDefinition", "src": "559:68:2", "functionSelector": "3af9e669", @@ -2870,17 +2870,17 @@ "name": "balanceOfUnderlying", "nameLocation": "568:19:2", "parameters": { - "id": 1329, + "id": 1335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1328, + "id": 1334, "mutability": "mutable", "name": "owner", "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", - "scope": 1333, + "scope": 1339, "src": "588:13:2", "stateVariable": false, "storageLocation": "default", @@ -2889,7 +2889,7 @@ "typeString": "address" }, "typeName": { - "id": 1327, + "id": 1333, "name": "address", "nodeType": "ElementaryTypeName", "src": "588:7:2", @@ -2905,17 +2905,17 @@ "src": "587:15:2" }, "returnParameters": { - "id": 1332, + "id": 1338, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1331, + "id": 1337, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1333, + "scope": 1339, "src": "621:4:2", "stateVariable": false, "storageLocation": "default", @@ -2924,7 +2924,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1330, + "id": 1336, "name": "uint", "nodeType": "ElementaryTypeName", "src": "621:4:2", @@ -2938,13 +2938,13 @@ ], "src": "620:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1340, + "id": 1346, "nodeType": "FunctionDefinition", "src": "631:71:2", "functionSelector": "17bfdfbc", @@ -2954,17 +2954,17 @@ "name": "borrowBalanceCurrent", "nameLocation": "640:20:2", "parameters": { - "id": 1336, + "id": 1342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1335, + "id": 1341, "mutability": "mutable", "name": "account", "nameLocation": "669:7:2", "nodeType": "VariableDeclaration", - "scope": 1340, + "scope": 1346, "src": "661:15:2", "stateVariable": false, "storageLocation": "default", @@ -2973,7 +2973,7 @@ "typeString": "address" }, "typeName": { - "id": 1334, + "id": 1340, "name": "address", "nodeType": "ElementaryTypeName", "src": "661:7:2", @@ -2989,17 +2989,17 @@ "src": "660:17:2" }, "returnParameters": { - "id": 1339, + "id": 1345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1338, + "id": 1344, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1340, + "scope": 1346, "src": "696:4:2", "stateVariable": false, "storageLocation": "default", @@ -3008,7 +3008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1337, + "id": 1343, "name": "uint", "nodeType": "ElementaryTypeName", "src": "696:4:2", @@ -3022,13 +3022,13 @@ ], "src": "695:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1345, + "id": 1351, "nodeType": "FunctionDefinition", "src": "706:55:2", "functionSelector": "bd6d894d", @@ -3038,23 +3038,23 @@ "name": "exchangeRateCurrent", "nameLocation": "715:19:2", "parameters": { - "id": 1341, + "id": 1347, "nodeType": "ParameterList", "parameters": [], "src": "734:2:2" }, "returnParameters": { - "id": 1344, + "id": 1350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1343, + "id": 1349, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1345, + "scope": 1351, "src": "755:4:2", "stateVariable": false, "storageLocation": "default", @@ -3063,7 +3063,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1342, + "id": 1348, "name": "uint", "nodeType": "ElementaryTypeName", "src": "755:4:2", @@ -3077,13 +3077,13 @@ ], "src": "754:6:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1350, + "id": 1356, "nodeType": "FunctionDefinition", "src": "765:49:2", "functionSelector": "6f307dc3", @@ -3093,23 +3093,23 @@ "name": "underlying", "nameLocation": "774:10:2", "parameters": { - "id": 1346, + "id": 1352, "nodeType": "ParameterList", "parameters": [], "src": "784:2:2" }, "returnParameters": { - "id": 1349, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1348, + "id": 1354, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1350, + "scope": 1356, "src": "805:7:2", "stateVariable": false, "storageLocation": "default", @@ -3118,7 +3118,7 @@ "typeString": "address" }, "typeName": { - "id": 1347, + "id": 1353, "name": "address", "nodeType": "ElementaryTypeName", "src": "805:7:2", @@ -3133,7 +3133,7 @@ ], "src": "804:9:2" }, - "scope": 1351, + "scope": 1357, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -3146,20 +3146,20 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 1351 + 1357 ], "name": "CToken", "nameLocation": "103:6:2", - "scope": 1629, + "scope": 1635, "usedErrors": [] }, { - "id": 1427, + "id": 1433, "nodeType": "ContractDefinition", "src": "818:668:2", "nodes": [ { - "id": 1360, + "id": 1366, "nodeType": "FunctionDefinition", "src": "844:61:2", "functionSelector": "8e8f294b", @@ -3169,17 +3169,17 @@ "name": "markets", "nameLocation": "853:7:2", "parameters": { - "id": 1354, + "id": 1360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1353, + "id": 1359, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1360, + "scope": 1366, "src": "861:7:2", "stateVariable": false, "storageLocation": "default", @@ -3188,7 +3188,7 @@ "typeString": "address" }, "typeName": { - "id": 1352, + "id": 1358, "name": "address", "nodeType": "ElementaryTypeName", "src": "861:7:2", @@ -3204,17 +3204,17 @@ "src": "860:9:2" }, "returnParameters": { - "id": 1359, + "id": 1365, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1356, + "id": 1362, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1360, + "scope": 1366, "src": "893:4:2", "stateVariable": false, "storageLocation": "default", @@ -3223,7 +3223,7 @@ "typeString": "bool" }, "typeName": { - "id": 1355, + "id": 1361, "name": "bool", "nodeType": "ElementaryTypeName", "src": "893:4:2", @@ -3236,12 +3236,12 @@ }, { "constant": false, - "id": 1358, + "id": 1364, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1360, + "scope": 1366, "src": "899:4:2", "stateVariable": false, "storageLocation": "default", @@ -3250,7 +3250,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1357, + "id": 1363, "name": "uint", "nodeType": "ElementaryTypeName", "src": "899:4:2", @@ -3264,13 +3264,13 @@ ], "src": "892:12:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1366, + "id": 1372, "nodeType": "FunctionDefinition", "src": "909:54:2", "functionSelector": "7dc0d1d0", @@ -3280,47 +3280,47 @@ "name": "oracle", "nameLocation": "918:6:2", "parameters": { - "id": 1361, + "id": 1367, "nodeType": "ParameterList", "parameters": [], "src": "924:2:2" }, "returnParameters": { - "id": 1365, + "id": 1371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1364, + "id": 1370, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1366, + "scope": 1372, "src": "950:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" }, "typeName": { - "id": 1363, + "id": 1369, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1362, + "id": 1368, "name": "PriceOracle", "nameLocations": [ "950:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1435, + "referencedDeclaration": 1441, "src": "950:11:2" }, - "referencedDeclaration": 1435, + "referencedDeclaration": 1441, "src": "950:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" } }, @@ -3329,13 +3329,13 @@ ], "src": "949:13:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1377, + "id": 1383, "nodeType": "FunctionDefinition", "src": "967:79:2", "functionSelector": "5ec88c79", @@ -3345,17 +3345,17 @@ "name": "getAccountLiquidity", "nameLocation": "976:19:2", "parameters": { - "id": 1369, + "id": 1375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1368, + "id": 1374, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1377, + "scope": 1383, "src": "996:7:2", "stateVariable": false, "storageLocation": "default", @@ -3364,7 +3364,7 @@ "typeString": "address" }, "typeName": { - "id": 1367, + "id": 1373, "name": "address", "nodeType": "ElementaryTypeName", "src": "996:7:2", @@ -3380,17 +3380,17 @@ "src": "995:9:2" }, "returnParameters": { - "id": 1376, + "id": 1382, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1371, + "id": 1377, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1377, + "scope": 1383, "src": "1028:4:2", "stateVariable": false, "storageLocation": "default", @@ -3399,7 +3399,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1370, + "id": 1376, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1028:4:2", @@ -3412,12 +3412,12 @@ }, { "constant": false, - "id": 1373, + "id": 1379, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1377, + "scope": 1383, "src": "1034:4:2", "stateVariable": false, "storageLocation": "default", @@ -3426,7 +3426,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1372, + "id": 1378, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1034:4:2", @@ -3439,12 +3439,12 @@ }, { "constant": false, - "id": 1375, + "id": 1381, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1377, + "scope": 1383, "src": "1040:4:2", "stateVariable": false, "storageLocation": "default", @@ -3453,7 +3453,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1374, + "id": 1380, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1040:4:2", @@ -3467,13 +3467,13 @@ ], "src": "1027:18:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1386, + "id": 1392, "nodeType": "FunctionDefinition", "src": "1050:70:2", "functionSelector": "abfceffc", @@ -3483,17 +3483,17 @@ "name": "getAssetsIn", "nameLocation": "1059:11:2", "parameters": { - "id": 1380, + "id": 1386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1379, + "id": 1385, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1386, + "scope": 1392, "src": "1071:7:2", "stateVariable": false, "storageLocation": "default", @@ -3502,7 +3502,7 @@ "typeString": "address" }, "typeName": { - "id": 1378, + "id": 1384, "name": "address", "nodeType": "ElementaryTypeName", "src": "1071:7:2", @@ -3518,50 +3518,50 @@ "src": "1070:9:2" }, "returnParameters": { - "id": 1385, + "id": 1391, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1384, + "id": 1390, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1386, + "scope": 1392, "src": "1103:15:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1351_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1357_$dyn_memory_ptr", "typeString": "contract CToken[]" }, "typeName": { "baseType": { - "id": 1382, + "id": 1388, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1381, + "id": 1387, "name": "CToken", "nameLocations": [ "1103:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1351, + "referencedDeclaration": 1357, "src": "1103:6:2" }, - "referencedDeclaration": 1351, + "referencedDeclaration": 1357, "src": "1103:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, - "id": 1383, + "id": 1389, "nodeType": "ArrayTypeName", "src": "1103:8:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_CToken_$1351_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_contract$_CToken_$1357_$dyn_storage_ptr", "typeString": "contract CToken[]" } }, @@ -3570,13 +3570,13 @@ ], "src": "1102:17:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1391, + "id": 1397, "nodeType": "FunctionDefinition", "src": "1124:37:2", "functionSelector": "e9af0292", @@ -3586,17 +3586,17 @@ "name": "claimComp", "nameLocation": "1133:9:2", "parameters": { - "id": 1389, + "id": 1395, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1388, + "id": 1394, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1391, + "scope": 1397, "src": "1143:7:2", "stateVariable": false, "storageLocation": "default", @@ -3605,7 +3605,7 @@ "typeString": "address" }, "typeName": { - "id": 1387, + "id": 1393, "name": "address", "nodeType": "ElementaryTypeName", "src": "1143:7:2", @@ -3621,18 +3621,18 @@ "src": "1142:9:2" }, "returnParameters": { - "id": 1390, + "id": 1396, "nodeType": "ParameterList", "parameters": [], "src": "1160:0:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1398, + "id": 1404, "nodeType": "FunctionDefinition", "src": "1165:59:2", "functionSelector": "cc7ebdc4", @@ -3642,17 +3642,17 @@ "name": "compAccrued", "nameLocation": "1174:11:2", "parameters": { - "id": 1394, + "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1393, + "id": 1399, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1398, + "scope": 1404, "src": "1186:7:2", "stateVariable": false, "storageLocation": "default", @@ -3661,7 +3661,7 @@ "typeString": "address" }, "typeName": { - "id": 1392, + "id": 1398, "name": "address", "nodeType": "ElementaryTypeName", "src": "1186:7:2", @@ -3677,17 +3677,17 @@ "src": "1185:9:2" }, "returnParameters": { - "id": 1397, + "id": 1403, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1396, + "id": 1402, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1398, + "scope": 1404, "src": "1218:4:2", "stateVariable": false, "storageLocation": "default", @@ -3696,7 +3696,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1395, + "id": 1401, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1218:4:2", @@ -3710,13 +3710,13 @@ ], "src": "1217:6:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1405, + "id": 1411, "nodeType": "FunctionDefinition", "src": "1228:58:2", "functionSelector": "1d7b33d7", @@ -3726,17 +3726,17 @@ "name": "compSpeeds", "nameLocation": "1237:10:2", "parameters": { - "id": 1401, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1400, + "id": 1406, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1405, + "scope": 1411, "src": "1248:7:2", "stateVariable": false, "storageLocation": "default", @@ -3745,7 +3745,7 @@ "typeString": "address" }, "typeName": { - "id": 1399, + "id": 1405, "name": "address", "nodeType": "ElementaryTypeName", "src": "1248:7:2", @@ -3761,17 +3761,17 @@ "src": "1247:9:2" }, "returnParameters": { - "id": 1404, + "id": 1410, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1403, + "id": 1409, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1405, + "scope": 1411, "src": "1280:4:2", "stateVariable": false, "storageLocation": "default", @@ -3780,7 +3780,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1402, + "id": 1408, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1280:4:2", @@ -3794,13 +3794,13 @@ ], "src": "1279:6:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1412, + "id": 1418, "nodeType": "FunctionDefinition", "src": "1290:64:2", "functionSelector": "6aa875b5", @@ -3810,17 +3810,17 @@ "name": "compSupplySpeeds", "nameLocation": "1299:16:2", "parameters": { - "id": 1408, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1407, + "id": 1413, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1412, + "scope": 1418, "src": "1316:7:2", "stateVariable": false, "storageLocation": "default", @@ -3829,7 +3829,7 @@ "typeString": "address" }, "typeName": { - "id": 1406, + "id": 1412, "name": "address", "nodeType": "ElementaryTypeName", "src": "1316:7:2", @@ -3845,17 +3845,17 @@ "src": "1315:9:2" }, "returnParameters": { - "id": 1411, + "id": 1417, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1410, + "id": 1416, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1412, + "scope": 1418, "src": "1348:4:2", "stateVariable": false, "storageLocation": "default", @@ -3864,7 +3864,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1409, + "id": 1415, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1348:4:2", @@ -3878,13 +3878,13 @@ ], "src": "1347:6:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1419, + "id": 1425, "nodeType": "FunctionDefinition", "src": "1358:64:2", "functionSelector": "f4a433c0", @@ -3894,17 +3894,17 @@ "name": "compBorrowSpeeds", "nameLocation": "1367:16:2", "parameters": { - "id": 1415, + "id": 1421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1414, + "id": 1420, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1419, + "scope": 1425, "src": "1384:7:2", "stateVariable": false, "storageLocation": "default", @@ -3913,7 +3913,7 @@ "typeString": "address" }, "typeName": { - "id": 1413, + "id": 1419, "name": "address", "nodeType": "ElementaryTypeName", "src": "1384:7:2", @@ -3929,17 +3929,17 @@ "src": "1383:9:2" }, "returnParameters": { - "id": 1418, + "id": 1424, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1417, + "id": 1423, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1419, + "scope": 1425, "src": "1416:4:2", "stateVariable": false, "storageLocation": "default", @@ -3948,7 +3948,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1416, + "id": 1422, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1416:4:2", @@ -3962,13 +3962,13 @@ ], "src": "1415:6:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 1426, + "id": 1432, "nodeType": "FunctionDefinition", "src": "1426:58:2", "functionSelector": "4a584432", @@ -3978,17 +3978,17 @@ "name": "borrowCaps", "nameLocation": "1435:10:2", "parameters": { - "id": 1422, + "id": 1428, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1421, + "id": 1427, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1426, + "scope": 1432, "src": "1446:7:2", "stateVariable": false, "storageLocation": "default", @@ -3997,7 +3997,7 @@ "typeString": "address" }, "typeName": { - "id": 1420, + "id": 1426, "name": "address", "nodeType": "ElementaryTypeName", "src": "1446:7:2", @@ -4013,17 +4013,17 @@ "src": "1445:9:2" }, "returnParameters": { - "id": 1425, + "id": 1431, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1424, + "id": 1430, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1426, + "scope": 1432, "src": "1478:4:2", "stateVariable": false, "storageLocation": "default", @@ -4032,7 +4032,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1423, + "id": 1429, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1478:4:2", @@ -4046,7 +4046,7 @@ ], "src": "1477:6:2" }, - "scope": 1427, + "scope": 1433, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -4059,20 +4059,20 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 1427 + 1433 ], "name": "Comptroller", "nameLocation": "828:11:2", - "scope": 1629, + "scope": 1635, "usedErrors": [] }, { - "id": 1435, + "id": 1441, "nodeType": "ContractDefinition", "src": "1488:93:2", "nodes": [ { - "id": 1434, + "id": 1440, "nodeType": "FunctionDefinition", "src": "1514:65:2", "functionSelector": "fe2c6198", @@ -4082,17 +4082,17 @@ "name": "price", "nameLocation": "1523:5:2", "parameters": { - "id": 1430, + "id": 1436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1429, + "id": 1435, "mutability": "mutable", "name": "price", "nameLocation": "1543:5:2", "nodeType": "VariableDeclaration", - "scope": 1434, + "scope": 1440, "src": "1529:19:2", "stateVariable": false, "storageLocation": "memory", @@ -4101,7 +4101,7 @@ "typeString": "string" }, "typeName": { - "id": 1428, + "id": 1434, "name": "string", "nodeType": "ElementaryTypeName", "src": "1529:6:2", @@ -4116,17 +4116,17 @@ "src": "1528:21:2" }, "returnParameters": { - "id": 1433, + "id": 1439, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1432, + "id": 1438, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1434, + "scope": 1440, "src": "1573:4:2", "stateVariable": false, "storageLocation": "default", @@ -4135,7 +4135,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1431, + "id": 1437, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1573:4:2", @@ -4149,7 +4149,7 @@ ], "src": "1572:6:2" }, - "scope": 1435, + "scope": 1441, "stateMutability": "view", "virtual": false, "visibility": "external" @@ -4162,32 +4162,32 @@ "contractKind": "interface", "fullyImplemented": false, "linearizedBaseContracts": [ - 1435 + 1441 ], "name": "PriceOracle", "nameLocation": "1498:11:2", - "scope": 1629, + "scope": 1635, "usedErrors": [] }, { - "id": 1628, + "id": 1634, "nodeType": "ContractDefinition", "src": "1583:1980:2", "nodes": [ { - "id": 1454, + "id": 1460, "nodeType": "StructDefinition", "src": "1626:203:2", "canonicalName": "CompoundV2Query.CTokenMetadata", "members": [ { "constant": false, - "id": 1439, + "id": 1445, "mutability": "mutable", "name": "cToken", "nameLocation": "1662:6:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1654:14:2", "stateVariable": false, "storageLocation": "default", @@ -4196,7 +4196,7 @@ "typeString": "address" }, "typeName": { - "id": 1438, + "id": 1444, "name": "address", "nodeType": "ElementaryTypeName", "src": "1654:7:2", @@ -4210,12 +4210,12 @@ }, { "constant": false, - "id": 1441, + "id": 1447, "mutability": "mutable", "name": "allowance", "nameLocation": "1679:9:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1674:14:2", "stateVariable": false, "storageLocation": "default", @@ -4224,7 +4224,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1440, + "id": 1446, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1674:4:2", @@ -4237,12 +4237,12 @@ }, { "constant": false, - "id": 1443, + "id": 1449, "mutability": "mutable", "name": "balance", "nameLocation": "1699:7:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1694:12:2", "stateVariable": false, "storageLocation": "default", @@ -4251,7 +4251,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1442, + "id": 1448, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1694:4:2", @@ -4264,12 +4264,12 @@ }, { "constant": false, - "id": 1445, + "id": 1451, "mutability": "mutable", "name": "balanceUnderlying", "nameLocation": "1717:17:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1712:22:2", "stateVariable": false, "storageLocation": "default", @@ -4278,7 +4278,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1444, + "id": 1450, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1712:4:2", @@ -4291,12 +4291,12 @@ }, { "constant": false, - "id": 1447, + "id": 1453, "mutability": "mutable", "name": "borrowBalance", "nameLocation": "1745:13:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1740:18:2", "stateVariable": false, "storageLocation": "default", @@ -4305,7 +4305,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1446, + "id": 1452, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1740:4:2", @@ -4318,12 +4318,12 @@ }, { "constant": false, - "id": 1449, + "id": 1455, "mutability": "mutable", "name": "collateralFactor", "nameLocation": "1769:16:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1764:21:2", "stateVariable": false, "storageLocation": "default", @@ -4332,7 +4332,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1448, + "id": 1454, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1764:4:2", @@ -4345,12 +4345,12 @@ }, { "constant": false, - "id": 1451, + "id": 1457, "mutability": "mutable", "name": "exchangeRate", "nameLocation": "1796:12:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1791:17:2", "stateVariable": false, "storageLocation": "default", @@ -4359,7 +4359,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1450, + "id": 1456, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1791:4:2", @@ -4372,12 +4372,12 @@ }, { "constant": false, - "id": 1453, + "id": 1459, "mutability": "mutable", "name": "price", "nameLocation": "1819:5:2", "nodeType": "VariableDeclaration", - "scope": 1454, + "scope": 1460, "src": "1814:10:2", "stateVariable": false, "storageLocation": "default", @@ -4386,7 +4386,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1452, + "id": 1458, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1814:4:2", @@ -4400,23 +4400,23 @@ ], "name": "CTokenMetadata", "nameLocation": "1633:14:2", - "scope": 1628, + "scope": 1634, "visibility": "public" }, { - "id": 1464, + "id": 1470, "nodeType": "StructDefinition", "src": "1833:124:2", "canonicalName": "CompoundV2Query.QueryResponse", "members": [ { "constant": false, - "id": 1456, + "id": 1462, "mutability": "mutable", "name": "migratorEnabled", "nameLocation": "1865:15:2", "nodeType": "VariableDeclaration", - "scope": 1464, + "scope": 1470, "src": "1860:20:2", "stateVariable": false, "storageLocation": "default", @@ -4425,7 +4425,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1455, + "id": 1461, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1860:4:2", @@ -4438,45 +4438,45 @@ }, { "constant": false, - "id": 1460, + "id": 1466, "mutability": "mutable", "name": "tokens", "nameLocation": "1903:6:2", "nodeType": "VariableDeclaration", - "scope": 1464, + "scope": 1470, "src": "1886:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 1458, + "id": 1464, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1457, + "id": 1463, "name": "CTokenMetadata", "nameLocations": [ "1886:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "1886:14:2" }, - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "1886:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 1459, + "id": 1465, "nodeType": "ArrayTypeName", "src": "1886:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, @@ -4484,12 +4484,12 @@ }, { "constant": false, - "id": 1463, + "id": 1469, "mutability": "mutable", "name": "cometState", "nameLocation": "1942:10:2", "nodeType": "VariableDeclaration", - "scope": 1464, + "scope": 1470, "src": "1915:37:2", "stateVariable": false, "storageLocation": "default", @@ -4498,10 +4498,10 @@ "typeString": "struct CometQuery.CometStateWithAccountState" }, "typeName": { - "id": 1462, + "id": 1468, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1461, + "id": 1467, "name": "CometStateWithAccountState", "nameLocations": [ "1915:26:2" @@ -4522,47 +4522,47 @@ ], "name": "QueryResponse", "nameLocation": "1840:13:2", - "scope": 1628, + "scope": 1634, "visibility": "public" }, { - "id": 1470, + "id": 1476, "nodeType": "StructDefinition", "src": "1961:75:2", "canonicalName": "CompoundV2Query.CTokenRequest", "members": [ { "constant": false, - "id": 1467, + "id": 1473, "mutability": "mutable", "name": "cToken", "nameLocation": "1995:6:2", "nodeType": "VariableDeclaration", - "scope": 1470, + "scope": 1476, "src": "1988:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" }, "typeName": { - "id": 1466, + "id": 1472, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1465, + "id": 1471, "name": "CToken", "nameLocations": [ "1988:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1351, + "referencedDeclaration": 1357, "src": "1988:6:2" }, - "referencedDeclaration": 1351, + "referencedDeclaration": 1357, "src": "1988:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, @@ -4570,12 +4570,12 @@ }, { "constant": false, - "id": 1469, + "id": 1475, "mutability": "mutable", "name": "priceOracleSymbol", "nameLocation": "2014:17:2", "nodeType": "VariableDeclaration", - "scope": 1470, + "scope": 1476, "src": "2007:24:2", "stateVariable": false, "storageLocation": "default", @@ -4584,7 +4584,7 @@ "typeString": "string" }, "typeName": { - "id": 1468, + "id": 1474, "name": "string", "nodeType": "ElementaryTypeName", "src": "2007:6:2", @@ -4598,79 +4598,79 @@ ], "name": "CTokenRequest", "nameLocation": "1968:13:2", - "scope": 1628, + "scope": 1634, "visibility": "public" }, { - "id": 1558, + "id": 1564, "nodeType": "FunctionDefinition", "src": "2040:713:2", "body": { - "id": 1557, + "id": 1563, "nodeType": "Block", "src": "2251:502:2", "statements": [ { "assignments": [ - 1492 + 1498 ], "declarations": [ { "constant": false, - "id": 1492, + "id": 1498, "mutability": "mutable", "name": "priceOracle", "nameLocation": "2269:11:2", "nodeType": "VariableDeclaration", - "scope": 1557, + "scope": 1563, "src": "2257:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" }, "typeName": { - "id": 1491, + "id": 1497, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1490, + "id": 1496, "name": "PriceOracle", "nameLocations": [ "2257:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1435, + "referencedDeclaration": 1441, "src": "2257:11:2" }, - "referencedDeclaration": 1435, + "referencedDeclaration": 1441, "src": "2257:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" } }, "visibility": "internal" } ], - "id": 1496, + "id": 1502, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 1493, + "id": 1499, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, + "referencedDeclaration": 1479, "src": "2283:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" } }, - "id": 1494, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -4678,14 +4678,14 @@ "memberLocation": "2295:6:2", "memberName": "oracle", "nodeType": "MemberAccess", - "referencedDeclaration": 1366, + "referencedDeclaration": 1372, "src": "2283:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1435_$", + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_PriceOracle_$1441_$", "typeString": "function () view external returns (contract PriceOracle)" } }, - "id": 1495, + "id": 1501, "isConstant": false, "isLValue": false, "isPure": false, @@ -4697,7 +4697,7 @@ "src": "2283:20:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" } }, @@ -4706,17 +4706,17 @@ }, { "assignments": [ - 1498 + 1504 ], "declarations": [ { "constant": false, - "id": 1498, + "id": 1504, "mutability": "mutable", "name": "cTokenCount", "nameLocation": "2314:11:2", "nodeType": "VariableDeclaration", - "scope": 1557, + "scope": 1563, "src": "2309:16:2", "stateVariable": false, "storageLocation": "default", @@ -4725,7 +4725,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1497, + "id": 1503, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2309:4:2", @@ -4737,21 +4737,21 @@ "visibility": "internal" } ], - "id": 1501, + "id": 1507, "initialValue": { "expression": { - "id": 1499, + "id": 1505, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1480, + "referencedDeclaration": 1486, "src": "2328:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1476_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 1500, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": false, @@ -4770,65 +4770,65 @@ }, { "assignments": [ - 1506 + 1512 ], "declarations": [ { "constant": false, - "id": 1506, + "id": 1512, "mutability": "mutable", "name": "tokens", "nameLocation": "2372:6:2", "nodeType": "VariableDeclaration", - "scope": 1557, + "scope": 1563, "src": "2348:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" }, "typeName": { "baseType": { - "id": 1504, + "id": 1510, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1503, + "id": 1509, "name": "CTokenMetadata", "nameLocations": [ "2348:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "2348:14:2" }, - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "2348:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 1505, + "id": 1511, "nodeType": "ArrayTypeName", "src": "2348:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } }, "visibility": "internal" } ], - "id": 1513, + "id": 1519, "initialValue": { "arguments": [ { - "id": 1511, + "id": 1517, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1498, + "referencedDeclaration": 1504, "src": "2402:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4843,7 +4843,7 @@ "typeString": "uint256" } ], - "id": 1510, + "id": 1516, "isConstant": false, "isLValue": false, "isPure": true, @@ -4851,40 +4851,40 @@ "nodeType": "NewExpression", "src": "2381:20:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CTokenMetadata_$1460_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct CompoundV2Query.CTokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 1508, + "id": 1514, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1507, + "id": 1513, "name": "CTokenMetadata", "nameLocations": [ "2385:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "2385:14:2" }, - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "2385:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, - "id": 1509, + "id": 1515, "nodeType": "ArrayTypeName", "src": "2385:16:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata[]" } } }, - "id": 1512, + "id": 1518, "isConstant": false, "isLValue": false, "isPure": false, @@ -4896,7 +4896,7 @@ "src": "2381:33:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, @@ -4905,37 +4905,37 @@ }, { "body": { - "id": 1538, + "id": 1544, "nodeType": "Block", "src": "2459:97:2", "statements": [ { "expression": { - "id": 1536, + "id": 1542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1524, + "id": 1530, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1506, + "referencedDeclaration": 1512, "src": "2467:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, - "id": 1526, + "id": 1532, "indexExpression": { - "id": 1525, + "id": 1531, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1515, + "referencedDeclaration": 1521, "src": "2474:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4949,7 +4949,7 @@ "nodeType": "IndexAccess", "src": "2467:9:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, @@ -4958,49 +4958,49 @@ "rightHandSide": { "arguments": [ { - "id": 1528, + "id": 1534, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1473, + "referencedDeclaration": 1479, "src": "2494:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" } }, { - "id": 1529, + "id": 1535, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1492, + "referencedDeclaration": 1498, "src": "2507:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" } }, { "baseExpression": { - "id": 1530, + "id": 1536, "name": "cTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1480, + "referencedDeclaration": 1486, "src": "2520:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1476_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata[] calldata" } }, - "id": 1532, + "id": 1538, "indexExpression": { - "id": 1531, + "id": 1537, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1515, + "referencedDeclaration": 1521, "src": "2528:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5014,16 +5014,16 @@ "nodeType": "IndexAccess", "src": "2520:10:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_calldata_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata" } }, { - "id": 1533, + "id": 1539, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1482, + "referencedDeclaration": 1488, "src": "2532:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5031,11 +5031,11 @@ } }, { - "id": 1534, + "id": 1540, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1484, + "referencedDeclaration": 1490, "src": "2541:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5046,15 +5046,15 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" }, { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" }, { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_calldata_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest calldata" }, { @@ -5066,18 +5066,18 @@ "typeString": "address payable" } ], - "id": 1527, + "id": 1533, "name": "cTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1627, + "referencedDeclaration": 1633, "src": "2479:14:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1427_$_t_contract$_PriceOracle_$1435_$_t_struct$_CTokenRequest_$1470_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1454_memory_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Comptroller_$1433_$_t_contract$_PriceOracle_$1441_$_t_struct$_CTokenRequest_$1476_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CTokenMetadata_$1460_memory_ptr_$", "typeString": "function (contract Comptroller,contract PriceOracle,struct CompoundV2Query.CTokenRequest memory,address payable,address payable) returns (struct CompoundV2Query.CTokenMetadata memory)" } }, - "id": 1535, + "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, @@ -5089,17 +5089,17 @@ "src": "2479:70:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, "src": "2467:82:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "id": 1537, + "id": 1543, "nodeType": "ExpressionStatement", "src": "2467:82:2" } @@ -5110,17 +5110,17 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1520, + "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1518, + "id": 1524, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1515, + "referencedDeclaration": 1521, "src": "2437:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5130,11 +5130,11 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1519, + "id": 1525, "name": "cTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1498, + "referencedDeclaration": 1504, "src": "2441:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5147,20 +5147,20 @@ "typeString": "bool" } }, - "id": 1539, + "id": 1545, "initializationExpression": { "assignments": [ - 1515 + 1521 ], "declarations": [ { "constant": false, - "id": 1515, + "id": 1521, "mutability": "mutable", "name": "i", "nameLocation": "2430:1:2", "nodeType": "VariableDeclaration", - "scope": 1539, + "scope": 1545, "src": "2425:6:2", "stateVariable": false, "storageLocation": "default", @@ -5169,7 +5169,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1514, + "id": 1520, "name": "uint", "nodeType": "ElementaryTypeName", "src": "2425:4:2", @@ -5181,10 +5181,10 @@ "visibility": "internal" } ], - "id": 1517, + "id": 1523, "initialValue": { "hexValue": "30", - "id": 1516, + "id": 1522, "isConstant": false, "isLValue": false, "isPure": true, @@ -5203,7 +5203,7 @@ }, "loopExpression": { "expression": { - "id": 1522, + "id": 1528, "isConstant": false, "isLValue": false, "isPure": false, @@ -5213,11 +5213,11 @@ "prefix": false, "src": "2454:3:2", "subExpression": { - "id": 1521, + "id": 1527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1515, + "referencedDeclaration": 1521, "src": "2454:1:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5229,7 +5229,7 @@ "typeString": "uint256" } }, - "id": 1523, + "id": 1529, "nodeType": "ExpressionStatement", "src": "2454:3:2" }, @@ -5242,11 +5242,11 @@ { "arguments": [ { - "id": 1543, + "id": 1549, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1482, + "referencedDeclaration": 1488, "src": "2632:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5254,11 +5254,11 @@ } }, { - "id": 1544, + "id": 1550, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1484, + "referencedDeclaration": 1490, "src": "2641:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5278,18 +5278,18 @@ } ], "expression": { - "id": 1541, + "id": 1547, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1482, "src": "2616:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", "typeString": "contract Comet" } }, - "id": 1542, + "id": 1548, "isConstant": false, "isLValue": false, "isPure": false, @@ -5304,7 +5304,7 @@ "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1545, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": false, @@ -5321,25 +5321,25 @@ } }, { - "id": 1546, + "id": 1552, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1506, + "referencedDeclaration": 1512, "src": "2667:6:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" } }, { "arguments": [ { - "id": 1548, + "id": 1554, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1482, "src": "2712:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Comet_$598", @@ -5347,11 +5347,11 @@ } }, { - "id": 1549, + "id": 1555, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1482, + "referencedDeclaration": 1488, "src": "2719:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -5362,7 +5362,7 @@ "arguments": [ { "hexValue": "30", - "id": 1552, + "id": 1558, "isConstant": false, "isLValue": false, "isPure": true, @@ -5384,7 +5384,7 @@ "typeString": "int_const 0" } ], - "id": 1551, + "id": 1557, "isConstant": false, "isLValue": false, "isPure": true, @@ -5396,7 +5396,7 @@ "typeString": "type(address payable)" }, "typeName": { - "id": 1550, + "id": 1556, "name": "address", "nodeType": "ElementaryTypeName", "src": "2728:8:2", @@ -5404,7 +5404,7 @@ "typeDescriptions": {} } }, - "id": 1553, + "id": 1559, "isConstant": false, "isLValue": false, "isPure": true, @@ -5436,18 +5436,18 @@ "typeString": "address payable" } ], - "id": 1547, + "id": 1553, "name": "queryWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, + "referencedDeclaration": 1148, "src": "2695:16:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$791_memory_ptr_$", "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" } }, - "id": 1554, + "id": 1560, "isConstant": false, "isLValue": false, "isPure": false, @@ -5471,7 +5471,7 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1454_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenMetadata_$1460_memory_ptr_$dyn_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory[] memory" }, { @@ -5479,18 +5479,18 @@ "typeString": "struct CometQuery.CometStateWithAccountState memory" } ], - "id": 1540, + "id": 1546, "name": "QueryResponse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1464, + "referencedDeclaration": 1470, "src": "2575:13:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1464_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_QueryResponse_$1470_storage_ptr_$", "typeString": "type(struct CompoundV2Query.QueryResponse storage pointer)" } }, - "id": 1555, + "id": 1561, "isConstant": false, "isLValue": false, "isPure": false, @@ -5510,12 +5510,12 @@ "src": "2575:173:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1464_memory_ptr", + "typeIdentifier": "t_struct$_QueryResponse_$1470_memory_ptr", "typeString": "struct CompoundV2Query.QueryResponse memory" } }, - "functionReturnParameters": 1489, - "id": 1556, + "functionReturnParameters": 1495, + "id": 1562, "nodeType": "Return", "src": "2562:186:2" } @@ -5528,41 +5528,41 @@ "name": "getMigratorData", "nameLocation": "2049:15:2", "parameters": { - "id": 1485, + "id": 1491, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1473, + "id": 1479, "mutability": "mutable", "name": "comptroller", "nameLocation": "2082:11:2", "nodeType": "VariableDeclaration", - "scope": 1558, + "scope": 1564, "src": "2070:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" }, "typeName": { - "id": 1472, + "id": 1478, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1471, + "id": 1477, "name": "Comptroller", "nameLocations": [ "2070:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1427, + "referencedDeclaration": 1433, "src": "2070:11:2" }, - "referencedDeclaration": 1427, + "referencedDeclaration": 1433, "src": "2070:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" } }, @@ -5570,12 +5570,12 @@ }, { "constant": false, - "id": 1476, + "id": 1482, "mutability": "mutable", "name": "comet", "nameLocation": "2105:5:2", "nodeType": "VariableDeclaration", - "scope": 1558, + "scope": 1564, "src": "2099:11:2", "stateVariable": false, "storageLocation": "default", @@ -5584,10 +5584,10 @@ "typeString": "contract Comet" }, "typeName": { - "id": 1475, + "id": 1481, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1474, + "id": 1480, "name": "Comet", "nameLocations": [ "2099:5:2" @@ -5607,45 +5607,45 @@ }, { "constant": false, - "id": 1480, + "id": 1486, "mutability": "mutable", "name": "cTokens", "nameLocation": "2141:7:2", "nodeType": "VariableDeclaration", - "scope": 1558, + "scope": 1564, "src": "2116:32:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1476_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct CompoundV2Query.CTokenRequest[]" }, "typeName": { "baseType": { - "id": 1478, + "id": 1484, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1477, + "id": 1483, "name": "CTokenRequest", "nameLocations": [ "2116:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1470, + "referencedDeclaration": 1476, "src": "2116:13:2" }, - "referencedDeclaration": 1470, + "referencedDeclaration": 1476, "src": "2116:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_storage_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_storage_ptr", "typeString": "struct CompoundV2Query.CTokenRequest" } }, - "id": 1479, + "id": 1485, "nodeType": "ArrayTypeName", "src": "2116:15:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1470_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_CTokenRequest_$1476_storage_$dyn_storage_ptr", "typeString": "struct CompoundV2Query.CTokenRequest[]" } }, @@ -5653,12 +5653,12 @@ }, { "constant": false, - "id": 1482, + "id": 1488, "mutability": "mutable", "name": "account", "nameLocation": "2170:7:2", "nodeType": "VariableDeclaration", - "scope": 1558, + "scope": 1564, "src": "2154:23:2", "stateVariable": false, "storageLocation": "default", @@ -5667,7 +5667,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1481, + "id": 1487, "name": "address", "nodeType": "ElementaryTypeName", "src": "2154:15:2", @@ -5681,12 +5681,12 @@ }, { "constant": false, - "id": 1484, + "id": 1490, "mutability": "mutable", "name": "spender", "nameLocation": "2199:7:2", "nodeType": "VariableDeclaration", - "scope": 1558, + "scope": 1564, "src": "2183:23:2", "stateVariable": false, "storageLocation": "default", @@ -5695,7 +5695,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1483, + "id": 1489, "name": "address", "nodeType": "ElementaryTypeName", "src": "2183:15:2", @@ -5711,41 +5711,41 @@ "src": "2064:146:2" }, "returnParameters": { - "id": 1489, + "id": 1495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1488, + "id": 1494, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1558, + "scope": 1564, "src": "2229:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1464_memory_ptr", + "typeIdentifier": "t_struct$_QueryResponse_$1470_memory_ptr", "typeString": "struct CompoundV2Query.QueryResponse" }, "typeName": { - "id": 1487, + "id": 1493, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1486, + "id": 1492, "name": "QueryResponse", "nameLocations": [ "2229:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1464, + "referencedDeclaration": 1470, "src": "2229:13:2" }, - "referencedDeclaration": 1464, + "referencedDeclaration": 1470, "src": "2229:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_QueryResponse_$1464_storage_ptr", + "typeIdentifier": "t_struct$_QueryResponse_$1470_storage_ptr", "typeString": "struct CompoundV2Query.QueryResponse" } }, @@ -5754,78 +5754,78 @@ ], "src": "2228:22:2" }, - "scope": 1628, + "scope": 1634, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "id": 1627, + "id": 1633, "nodeType": "FunctionDefinition", "src": "2757:804:2", "body": { - "id": 1626, + "id": 1632, "nodeType": "Block", "src": "2980:581:2", "statements": [ { "assignments": [ - 1579 + 1585 ], "declarations": [ { "constant": false, - "id": 1579, + "id": 1585, "mutability": "mutable", "name": "cToken", "nameLocation": "2993:6:2", "nodeType": "VariableDeclaration", - "scope": 1626, + "scope": 1632, "src": "2986:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" }, "typeName": { - "id": 1578, + "id": 1584, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1577, + "id": 1583, "name": "CToken", "nameLocations": [ "2986:6:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1351, + "referencedDeclaration": 1357, "src": "2986:6:2" }, - "referencedDeclaration": 1351, + "referencedDeclaration": 1357, "src": "2986:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, "visibility": "internal" } ], - "id": 1582, + "id": 1588, "initialValue": { "expression": { - "id": 1580, + "id": 1586, "name": "cTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1567, + "referencedDeclaration": 1573, "src": "3002:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_memory_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_memory_ptr", "typeString": "struct CompoundV2Query.CTokenRequest memory" } }, - "id": 1581, + "id": 1587, "isConstant": false, "isLValue": true, "isPure": false, @@ -5833,10 +5833,10 @@ "memberLocation": "3016:6:2", "memberName": "cToken", "nodeType": "MemberAccess", - "referencedDeclaration": 1467, + "referencedDeclaration": 1473, "src": "3002:20:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, @@ -5846,18 +5846,18 @@ { "assignments": [ null, - 1584 + 1590 ], "declarations": [ null, { "constant": false, - "id": 1584, + "id": 1590, "mutability": "mutable", "name": "collateralFactor", "nameLocation": "3036:16:2", "nodeType": "VariableDeclaration", - "scope": 1626, + "scope": 1632, "src": "3031:21:2", "stateVariable": false, "storageLocation": "default", @@ -5866,7 +5866,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1583, + "id": 1589, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3031:4:2", @@ -5878,20 +5878,20 @@ "visibility": "internal" } ], - "id": 1592, + "id": 1598, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1589, + "id": 1595, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3084:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } } @@ -5899,11 +5899,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } ], - "id": 1588, + "id": 1594, "isConstant": false, "isLValue": false, "isPure": true, @@ -5915,14 +5915,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1587, + "id": 1593, "name": "address", "nodeType": "ElementaryTypeName", "src": "3076:7:2", "typeDescriptions": {} } }, - "id": 1590, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, @@ -5947,18 +5947,18 @@ } ], "expression": { - "id": 1585, + "id": 1591, "name": "comptroller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1561, + "referencedDeclaration": 1567, "src": "3056:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" } }, - "id": 1586, + "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, @@ -5966,14 +5966,14 @@ "memberLocation": "3068:7:2", "memberName": "markets", "nodeType": "MemberAccess", - "referencedDeclaration": 1360, + "referencedDeclaration": 1366, "src": "3056:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$_t_uint256_$", "typeString": "function (address) view external returns (bool,uint256)" } }, - "id": 1591, + "id": 1597, "isConstant": false, "isLValue": false, "isPure": false, @@ -5998,14 +5998,14 @@ { "arguments": [ { - "id": 1596, + "id": 1602, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3153:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } } @@ -6013,11 +6013,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } ], - "id": 1595, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, @@ -6029,14 +6029,14 @@ "typeString": "type(address)" }, "typeName": { - "id": 1594, + "id": 1600, "name": "address", "nodeType": "ElementaryTypeName", "src": "3145:7:2", "typeDescriptions": {} } }, - "id": 1597, + "id": 1603, "isConstant": false, "isLValue": false, "isPure": false, @@ -6055,11 +6055,11 @@ { "arguments": [ { - "id": 1600, + "id": 1606, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, + "referencedDeclaration": 1575, "src": "3198:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6067,11 +6067,11 @@ } }, { - "id": 1601, + "id": 1607, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1571, + "referencedDeclaration": 1577, "src": "3207:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6091,18 +6091,18 @@ } ], "expression": { - "id": 1598, + "id": 1604, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3181:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, - "id": 1599, + "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, @@ -6110,14 +6110,14 @@ "memberLocation": "3188:9:2", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1319, + "referencedDeclaration": 1325, "src": "3181:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1602, + "id": 1608, "isConstant": false, "isLValue": false, "isPure": false, @@ -6136,11 +6136,11 @@ { "arguments": [ { - "id": 1605, + "id": 1611, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, + "referencedDeclaration": 1575, "src": "3251:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6156,18 +6156,18 @@ } ], "expression": { - "id": 1603, + "id": 1609, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3234:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, - "id": 1604, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": false, @@ -6175,14 +6175,14 @@ "memberLocation": "3241:9:2", "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1326, + "referencedDeclaration": 1332, "src": "3234:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1606, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": false, @@ -6201,11 +6201,11 @@ { "arguments": [ { - "id": 1609, + "id": 1615, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, + "referencedDeclaration": 1575, "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6221,18 +6221,18 @@ } ], "expression": { - "id": 1607, + "id": 1613, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3288:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, - "id": 1608, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -6240,14 +6240,14 @@ "memberLocation": "3295:19:2", "memberName": "balanceOfUnderlying", "nodeType": "MemberAccess", - "referencedDeclaration": 1333, + "referencedDeclaration": 1339, "src": "3288:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 1610, + "id": 1616, "isConstant": false, "isLValue": false, "isPure": false, @@ -6266,11 +6266,11 @@ { "arguments": [ { - "id": 1613, + "id": 1619, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1569, + "referencedDeclaration": 1575, "src": "3376:7:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6286,18 +6286,18 @@ } ], "expression": { - "id": 1611, + "id": 1617, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3348:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, - "id": 1612, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": false, @@ -6305,14 +6305,14 @@ "memberLocation": "3355:20:2", "memberName": "borrowBalanceCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 1340, + "referencedDeclaration": 1346, "src": "3348:27:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) external returns (uint256)" } }, - "id": 1614, + "id": 1620, "isConstant": false, "isLValue": false, "isPure": false, @@ -6329,11 +6329,11 @@ } }, { - "id": 1615, + "id": 1621, "name": "collateralFactor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1584, + "referencedDeclaration": 1590, "src": "3412:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6345,18 +6345,18 @@ "expression": { "argumentTypes": [], "expression": { - "id": 1616, + "id": 1622, "name": "cToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1579, + "referencedDeclaration": 1585, "src": "3452:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_CToken_$1351", + "typeIdentifier": "t_contract$_CToken_$1357", "typeString": "contract CToken" } }, - "id": 1617, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": false, @@ -6364,14 +6364,14 @@ "memberLocation": "3459:19:2", "memberName": "exchangeRateCurrent", "nodeType": "MemberAccess", - "referencedDeclaration": 1345, + "referencedDeclaration": 1351, "src": "3452:26:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", "typeString": "function () external returns (uint256)" } }, - "id": 1618, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, @@ -6391,18 +6391,18 @@ "arguments": [ { "expression": { - "id": 1621, + "id": 1627, "name": "cTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1567, + "referencedDeclaration": 1573, "src": "3515:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_memory_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_memory_ptr", "typeString": "struct CompoundV2Query.CTokenRequest memory" } }, - "id": 1622, + "id": 1628, "isConstant": false, "isLValue": true, "isPure": false, @@ -6410,7 +6410,7 @@ "memberLocation": "3529:17:2", "memberName": "priceOracleSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 1469, + "referencedDeclaration": 1475, "src": "3515:31:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -6426,18 +6426,18 @@ } ], "expression": { - "id": 1619, + "id": 1625, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, + "referencedDeclaration": 1570, "src": "3497:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" } }, - "id": 1620, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": false, @@ -6445,14 +6445,14 @@ "memberLocation": "3509:5:2", "memberName": "price", "nodeType": "MemberAccess", - "referencedDeclaration": 1434, + "referencedDeclaration": 1440, "src": "3497:17:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (string memory) view external returns (uint256)" } }, - "id": 1623, + "id": 1629, "isConstant": false, "isLValue": false, "isPure": false, @@ -6504,18 +6504,18 @@ "typeString": "uint256" } ], - "id": 1593, + "id": 1599, "name": "CTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "3112:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1454_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_CTokenMetadata_$1460_storage_ptr_$", "typeString": "type(struct CompoundV2Query.CTokenMetadata storage pointer)" } }, - "id": 1624, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, @@ -6545,12 +6545,12 @@ "src": "3112:444:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata memory" } }, - "functionReturnParameters": 1576, - "id": 1625, + "functionReturnParameters": 1582, + "id": 1631, "nodeType": "Return", "src": "3099:457:2" } @@ -6563,41 +6563,41 @@ "name": "cTokenMetadata", "nameLocation": "2766:14:2", "parameters": { - "id": 1572, + "id": 1578, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1561, + "id": 1567, "mutability": "mutable", "name": "comptroller", "nameLocation": "2798:11:2", "nodeType": "VariableDeclaration", - "scope": 1627, + "scope": 1633, "src": "2786:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" }, "typeName": { - "id": 1560, + "id": 1566, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1559, + "id": 1565, "name": "Comptroller", "nameLocations": [ "2786:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1427, + "referencedDeclaration": 1433, "src": "2786:11:2" }, - "referencedDeclaration": 1427, + "referencedDeclaration": 1433, "src": "2786:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comptroller_$1427", + "typeIdentifier": "t_contract$_Comptroller_$1433", "typeString": "contract Comptroller" } }, @@ -6605,36 +6605,36 @@ }, { "constant": false, - "id": 1564, + "id": 1570, "mutability": "mutable", "name": "priceOracle", "nameLocation": "2827:11:2", "nodeType": "VariableDeclaration", - "scope": 1627, + "scope": 1633, "src": "2815:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" }, "typeName": { - "id": 1563, + "id": 1569, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1562, + "id": 1568, "name": "PriceOracle", "nameLocations": [ "2815:11:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1435, + "referencedDeclaration": 1441, "src": "2815:11:2" }, - "referencedDeclaration": 1435, + "referencedDeclaration": 1441, "src": "2815:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_PriceOracle_$1435", + "typeIdentifier": "t_contract$_PriceOracle_$1441", "typeString": "contract PriceOracle" } }, @@ -6642,36 +6642,36 @@ }, { "constant": false, - "id": 1567, + "id": 1573, "mutability": "mutable", "name": "cTokenRequest", "nameLocation": "2865:13:2", "nodeType": "VariableDeclaration", - "scope": 1627, + "scope": 1633, "src": "2844:34:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_memory_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_memory_ptr", "typeString": "struct CompoundV2Query.CTokenRequest" }, "typeName": { - "id": 1566, + "id": 1572, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1565, + "id": 1571, "name": "CTokenRequest", "nameLocations": [ "2844:13:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1470, + "referencedDeclaration": 1476, "src": "2844:13:2" }, - "referencedDeclaration": 1470, + "referencedDeclaration": 1476, "src": "2844:13:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenRequest_$1470_storage_ptr", + "typeIdentifier": "t_struct$_CTokenRequest_$1476_storage_ptr", "typeString": "struct CompoundV2Query.CTokenRequest" } }, @@ -6679,12 +6679,12 @@ }, { "constant": false, - "id": 1569, + "id": 1575, "mutability": "mutable", "name": "account", "nameLocation": "2900:7:2", "nodeType": "VariableDeclaration", - "scope": 1627, + "scope": 1633, "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", @@ -6693,7 +6693,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1568, + "id": 1574, "name": "address", "nodeType": "ElementaryTypeName", "src": "2884:15:2", @@ -6707,12 +6707,12 @@ }, { "constant": false, - "id": 1571, + "id": 1577, "mutability": "mutable", "name": "spender", "nameLocation": "2929:7:2", "nodeType": "VariableDeclaration", - "scope": 1627, + "scope": 1633, "src": "2913:23:2", "stateVariable": false, "storageLocation": "default", @@ -6721,7 +6721,7 @@ "typeString": "address payable" }, "typeName": { - "id": 1570, + "id": 1576, "name": "address", "nodeType": "ElementaryTypeName", "src": "2913:15:2", @@ -6737,41 +6737,41 @@ "src": "2780:160:2" }, "returnParameters": { - "id": 1576, + "id": 1582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1575, + "id": 1581, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1627, + "scope": 1633, "src": "2957:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_memory_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_memory_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" }, "typeName": { - "id": 1574, + "id": 1580, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1573, + "id": 1579, "name": "CTokenMetadata", "nameLocations": [ "2957:14:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "2957:14:2" }, - "referencedDeclaration": 1454, + "referencedDeclaration": 1460, "src": "2957:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_CTokenMetadata_$1454_storage_ptr", + "typeIdentifier": "t_struct$_CTokenMetadata_$1460_storage_ptr", "typeString": "struct CompoundV2Query.CTokenMetadata" } }, @@ -6780,7 +6780,7 @@ ], "src": "2956:23:2" }, - "scope": 1628, + "scope": 1634, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" @@ -6790,16 +6790,16 @@ "baseContracts": [ { "baseName": { - "id": 1436, + "id": 1442, "name": "CometQuery", "nameLocations": [ "1611:10:2" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1272, + "referencedDeclaration": 1278, "src": "1611:10:2" }, - "id": 1437, + "id": 1443, "nodeType": "InheritanceSpecifier", "src": "1611:10:2" } @@ -6809,12 +6809,12 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 1628, - 1272 + 1634, + 1278 ], "name": "CompoundV2Query", "nameLocation": "1592:15:2", - "scope": 1629, + "scope": 1635, "usedErrors": [] } ], diff --git a/web/lib/usePoll.ts b/web/lib/usePoll.ts index 3a4fed7..5d5b465 100644 --- a/web/lib/usePoll.ts +++ b/web/lib/usePoll.ts @@ -15,7 +15,7 @@ export function usePoll(timeout: number) { } loop(1, timeout); return () => clearTimeout(t); - }, []); + }, [timeout]); return timer; } From c3f3bbd49674228d9dada235da1cfcfe43b8c03f Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Thu, 5 Jan 2023 14:16:54 -0500 Subject: [PATCH 10/11] Fix aave sleuthing --- web/AaveV2Migrator.tsx | 2 + web/helpers/Sleuth/AaveV2Query.sol | 7 +- .../out/AaveV2Query.sol/AaveV2Query.json | 1250 ++++++++--------- 3 files changed, 626 insertions(+), 633 deletions(-) diff --git a/web/AaveV2Migrator.tsx b/web/AaveV2Migrator.tsx index c060185..22ec594 100644 --- a/web/AaveV2Migrator.tsx +++ b/web/AaveV2Migrator.tsx @@ -36,6 +36,7 @@ type AaveV2MigratorProps = AppProps & { type ATokenRequest = { aToken: string; stableDebtToken: string; + underlying: string; variableDebtToken: string; }; @@ -86,6 +87,7 @@ export default function AaveV2Migrator({ return { aToken: atoken.aTokenAddress, stableDebtToken: atoken.stableDebtTokenAddress, + underlying: atoken.address, variableDebtToken: atoken.variableDebtTokenAddress }; }), diff --git a/web/helpers/Sleuth/AaveV2Query.sol b/web/helpers/Sleuth/AaveV2Query.sol index 2e27cf4..a0a8317 100644 --- a/web/helpers/Sleuth/AaveV2Query.sol +++ b/web/helpers/Sleuth/AaveV2Query.sol @@ -62,6 +62,7 @@ contract AaveV2Query is CometQuery { struct ATokenRequest { AToken aToken; DebtToken stableDebtToken; + address underlying; DebtToken variableDebtToken; } @@ -101,7 +102,7 @@ contract AaveV2Query is CometQuery { DebtToken stableDebtToken = aTokenRequest.stableDebtToken; DebtToken variableDebtToken = aTokenRequest.variableDebtToken; - LendingPool.ReserveConfigurationMap memory configuration = pool.getConfiguration(address(aToken)); + LendingPool.ReserveConfigurationMap memory configuration = pool.getConfiguration(aTokenRequest.underlying); return ATokenMetadata({ @@ -111,9 +112,9 @@ contract AaveV2Query is CometQuery { allowance: aToken.allowance(account, spender), balance: aToken.balanceOf(account), stableDebtBalance: stableDebtToken.balanceOf(account), - variableDebtBalance: stableDebtToken.balanceOf(account), + variableDebtBalance: variableDebtToken.balanceOf(account), configuration: configuration.data, - priceInETH: priceOracle.getAssetPrice(address(aToken)) + priceInETH: priceOracle.getAssetPrice(aTokenRequest.underlying) }); } } diff --git a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json index 2f2f0aa..0599056 100644 --- a/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json +++ b/web/helpers/Sleuth/out/AaveV2Query.sol/AaveV2Query.json @@ -24,6 +24,11 @@ "name": "stableDebtToken", "type": "address" }, + { + "internalType": "address", + "name": "underlying", + "type": "address" + }, { "internalType": "contract DebtToken", "name": "variableDebtToken", @@ -371,6 +376,11 @@ "name": "stableDebtToken", "type": "address" }, + { + "internalType": "address", + "name": "underlying", + "type": "address" + }, { "internalType": "contract DebtToken", "name": "variableDebtToken", @@ -1090,24 +1100,24 @@ } ], "bytecode": { - "object": "0x6080806040523461001657612cac908161001c8239f35b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461106b575080635346cc1914610be3578063c2815c0b14610aa8578063cbe293fa14610a5c578063d4fc9fc6146108d55763ec7d7f7a1461006257600080fd5b3461065a5760e036600319011261065a576004356001600160a01b038116810361065a5761008e611122565b61009661125b565b916001600160401b03806064351161065a5736602360643501121561065a57606435600401351161065a573660246060606435600401350260643501011161065a576084356001600160a01b038116900361065a576004926100f661122f565b6020610100611245565b936000606060405161011181611138565b8281528185820152610121611656565b6040820152015260405196878092631f94a27560e31b825260018060a01b03165afa94851561066757600095610891575b506101626064356004013561170a565b9361017060405195866111fa565b60046064350135808652601f19906101879061170a565b0160005b81811061087a57505060005b6064356004013581106107cf575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa9081156106675760009161079d575b506101fb611656565b5061020582611bef565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106675760009161076b575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561066757600091610739575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa801561066757600060a052610706575b506000821283838103128116908484810313901516176106f057602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106675760009b6106bc575b5061036b6040518060c05261118a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a0608051015151936103cd8561170a565b946103db60405196876111fa565b8086526103ea601f199161170a565b0160005b8181106106a557505060005b60a06080510151805160ff83161015610453579061042d61044e926104266084359160ff851690611766565b5187612a5a565b61043a60ff831689611766565b5261044860ff821688611766565b50611bc5565b6103fa565b5050858585856080519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa90811561066757600091610673575b506080519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6105018261116e565b60c051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa9182156106675760009261062e575b506040519361059c85611138565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b81811061060d5750505082936106029151601f198583030160608601526113d2565b905160808301520390f35b9091956020610120826106236001948b51611271565b0197019291016105e0565b9091506020813d60201161065f575b8161064a602093836111fa565b8101031261065a5751908461058e565b600080fd5b3d915061063d565b6040513d6000823e3d90fd5b90506020813d60201161069d575b8161068e602093836111fa565b8101031261065a57518a6104b9565b3d9150610681565b6020906106b0612679565b82828a010152016103ee565b909a506020813d6020116106e8575b816106d8602093836111fa565b8101031261065a5751993861035b565b3d91506106cb565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610731575b8161071f602093836111fa565b8101031261065a575160a052386102cb565b3d9150610712565b90506020813d602011610763575b81610754602093836111fa565b8101031261065a575138610281565b3d9150610747565b90506020813d602011610795575b81610786602093836111fa565b8101031261065a575138610244565b3d9150610779565b90506020813d6020116107c7575b816107b8602093836111fa565b8101031261065a5751386101f2565b3d91506107ab565b6060606435828202013603602319011261065a576040516107ef81611153565b6064356060830201602401356001600160a01b038116900361065a5760643560608302016024810135825261085391859161082c9060440161121b565b60208201526108436064606086028135010161121b565b6040820152608435908a86611790565b61085d8288611766565b526108688187611766565b5060001981146106f057600101610197565b602090610885611721565b82828a0101520161018b565b9094506020813d6020116108cd575b816108ad602093836111fa565b8101031261065a57516001600160a01b038116810361065a579338610152565b3d91506108a0565b3461065a5760208060031936011261065a576108f76108f261110c565b611bef565b906040519080825282519261018090818385015261098d60018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610960610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a2f578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a4c838f8690600196030187528d516115c1565b9b019301930191949392906109e3565b3461065a57604036600319011261065a57610a7561110c565b6024359060ff8216820361065a57610aa491610a90916126f7565b6040519182916020835260208301906115c1565b0390f35b3461065a5760031960603682011261065a57610ac261110c565b602435906001600160401b039283831161065a576101608091843603011261065a5760405190810181811085821117610bcd57604052610b048360040161121b565b81526024830135602082015260448301356040820152606483013584811161065a57610b36906004369186010161157a565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b6560e4840161121b565b60e082015261010483013561010082015261012483013593841161065a57610144610bb993610b9d610aa4966004369184010161157a565b6101208401520135610140820152610bb361125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461065a57606036600319011261065a57610bfc61110c565b610c04611122565b90610c0d61125b565b610c15611656565b50610c1f82611bef565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561066757600093611037575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561066757600094611003575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561066757600091610fd1575b506000821283838103128116908484810313901516176106f057879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106675760009b610f9d575b5060206040519e8f90610d828261118a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610dc78461170a565b93610dd560405195866111fa565b808552610de4601f199161170a565b0160005b818110610f8657505060005b60a0860151805160ff83161015610e3b5790610e1b88610426610e369460ff851690611766565b610e2860ff831688611766565b5261044860ff821687611766565b610df4565b610e938387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561066757600092610f50575b610aa4995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ef68261116e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113d2565b91506020893d602011610f7e575b81610f6b602093836111fa565b8101031261065a57610aa4985191610eaf565b3d9150610f5e565b602090610f91612679565b82828901015201610de8565b909a506020813d602011610fc9575b81610fb9602093836111fa565b8101031261065a57519938610d70565b3d9150610fac565b90506020813d602011610ffb575b81610fec602093836111fa565b8101031261065a575188610ce3565b3d9150610fdf565b9093506020813d60201161102f575b8161101f602093836111fa565b8101031261065a57519286610c9d565b3d9150611012565b9092506020813d602011611063575b81611053602093836111fa565b8101031261065a57519185610c5f565b3d9150611046565b3461065a5760e036600319011261065a5761108461110c565b6001600160a01b0390602435828116810361065a57606036604319011261065a576110ae84611153565b604435838116810361065a578452606435838116810361065a576020850152608435928316830361065a57836110fd9360406101209601526110ee61122f565b916110f7611245565b93611790565b61110a6040518092611271565bf35b600435906001600160a01b038216820361065a57565b602435906001600160a01b038216820361065a57565b608081019081106001600160401b03821117610bcd57604052565b606081019081106001600160401b03821117610bcd57604052565b6101c081019081106001600160401b03821117610bcd57604052565b61016081019081106001600160401b03821117610bcd57604052565b61012081019081106001600160401b03821117610bcd57604052565b61018081019081106001600160401b03821117610bcd57604052565b61010081019081106001600160401b03821117610bcd57604052565b90601f801991011681019081106001600160401b03821117610bcd57604052565b35906001600160a01b038216820361065a57565b60a435906001600160a01b038216820361065a57565b60c435906001600160a01b038216820361065a57565b604435906001600160a01b038216820361065a57565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161144461016093846102808801526103208701906112f6565b9060e0830151166102a0860152610100808301516102c087015261147c61012092838501516101bf19898303016102e08a01526112f6565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115305750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b848061154f8f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bcd57601f01601f191660200190565b81601f8201121561065a578035906115918261155f565b9261159f60405194856111fa565b8284526020838301011161065a57816000926020809301838601378301015290565b9061164860018060a01b0380845116835260208401516020840152604084015160408401526115ff60608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b604051906116638261116e565b6040516101a0836116738361118a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bcd5760051b60200190565b6040519061172e826111a6565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b805182101561177a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361179d611721565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561066757600095611a53575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561066757600092611a1f575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610667576000946119eb575b506040516370a0823160e01b815287810186905294602086602481855afa958615610667576000966119b7575b50604051906370a0823160e01b825288820152602081602481855afa968715610667578a9160009861197f575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561066757600098611948575b506040519861191a8a6111a6565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611977575b81611963602093836111fa565b81010312611974575051963861190c565b80fd5b3d9150611956565b9150966020823d6020116119af575b8161199b602093836111fa565b8101031261197457505195899060246118d0565b3d915061198e565b90956020823d6020116119e3575b816119d2602093836111fa565b8101031261197457505194386118a3565b3d91506119c5565b90936020823d602011611a17575b81611a06602093836111fa565b810103126119745750519238611876565b3d91506119f9565b90916020823d602011611a4b575b81611a3a602093836111fa565b81010312611974575051903861183e565b3d9150611a2d565b6020959195813d602011611ab8575b81611a6f602093836111fa565b81010312611ab4576040519160208301908382106001600160401b03831117611aa157506040525181529360206117f5565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a62565b519060ff8216820361065a57565b51906001600160a01b038216820361065a57565b51906001600160401b038216820361065a57565b51906cffffffffffffffffffffffffff8216820361065a57565b60208183031261065a578051906001600160401b03821161065a570181601f8201121561065a578051611b428161155f565b92611b5060405194856111fa565b8184526020828401011161065a57611b6e91602080850191016112d3565b90565b60405190611b7e8261118a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106f05760010190565b6301e133809080600019048211811515166106f0570290565b60e0526000610160604051611c03816111c2565b604051611c0f816111de565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa80156106675760006101405261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa91821561066757600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa918215610667576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa92831561066757600093612591575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa9081156106675760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa9485156106675760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa918215610667576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa948515610667576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa9889156106675760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa9384156106675760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561066757600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa9485156106675760009561235b575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa80156106675760006101205261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156106675760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610667576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561066757600061016052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106675760009261226d575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561066757600095612239575b506040516101808181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa806101a05215610667576000906101a051612201575b61207760405180610100526111de565b60018060a01b0316610100515260206101005101526101605160406101005101526060610100510152608061010051015260018060a01b031660a061010051015260c061010051015260e06101005101526120d760ff610140511661170a565b976120e5604051998a6111fa565b60ff61014051168952601f1961210060ff610140511661170a565b0160005b8181106121e957505060005b60ff610140511660ff82161015612151578061213161214c9260e0516126f7565b61213e60ff83168d611766565b5261044860ff82168c611766565b612110565b5091939597909294969861217b6001600160401b03612174816101205116611bd6565b9216611bd6565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111c2565b610100518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b71565b9201015201612104565b905060203d602011612232575b61221b81610180516111fa565b60206101805180928101031261065a575190612067565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261065a57519338612018565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611b10565b9038611fd8565b6020813d6020116122be575b816122ab602093836111fa565b8101031261065a57516101605238611fa8565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f77565b909b506020813d602011612317575b816122ff602093836111fa565b8101031261065a5761231090611ae2565b9a38611f47565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b8101031261065a5761234990611ae2565b6101205238611f11565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b8101031261065a576040519061238f826111de565b61239881611ae2565b82526123a660208201611ae2565b60208301526123b760408201611ae2565b60408301526123c860608201611ae2565b60608301526123d960808201611af6565b60808301526123ea60a08201611af6565b60a083015260c081015164ffffffffff8116810361065a5760c08301526124139060e001611ac0565b60e08201529338611ed3565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261065a57519138611ea1565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261065a57519238611e70565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261065a57519738611e3f565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261065a57519338611e0e565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261065a57519038611ddd565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261065a57519338611dac565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b8101031261065a575138611d7b565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261065a57519138611d46565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b8101031261065a576125f290611ace565b9038611d15565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b8101031261065a5761262e90611ace565b9038611ce4565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b8101031261065a5761266790611ac0565b6101405238611cb3565b3d9150612649565b604051906126868261116e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361065a57565b90612700611b71565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161118a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119745750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261197457508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611974575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119745750612a4760e08651926129d2846111de565b6129db81611ac0565b84526129e960208201611ace565b60208501526129f9888201611ace565b88850152612a0960608201611ae2565b6060850152612a1a60808201611ae2565b6080850152612a2b60a08201611ae2565b60a0850152612a3c60c08201611ae2565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561066757600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561066757600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106675760009d612bd3575b50604051809e612b7f8261116e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119745750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119745750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611974575051906020612aab565b3d9150612c4f56fea26469706673582212208459a3957dd5de7ced8901e02eca616c894cc774f6c517f2383cf460cc41b09d64736f6c63430008100033", - "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;", + "object": "0x6080806040523461001657612cbb908161001c8239f35b600080fdfe6101c0604052600436101561001357600080fd5b60003560e01c80634853a7d7146108e25780635346cc191461042b578063c2815c0b146102f0578063cbe293fa146102a4578063d4fc9fc61461011d5763edd25e0b1461005f57600080fd5b346101185761010036600319011261011857610079611165565b602435906001600160a01b038083168303610118576080366043190112610118576040516100a6816114a9565b60443582811681036101185781526064358281168103610118576020820152608435828116810361011857604082015260a43582811681036101185760608201526100ef611191565b9060e43592831683036101185761012094610109946117a2565b61011660405180926111bb565bf35b600080fd5b34610118576020806003193601126101185761013f61013a611165565b611bfe565b90604051908082528251926101809081838501526101d560018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976101a8610100998a6102208b01526102a08a0190611240565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611240565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610277578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610294838f8690600196030187528d516115d3565b9b0193019301919493929061022b565b34610118576040366003190112610118576102bd611165565b6024359060ff82168203610118576102ec916102d891612706565b6040519182916020835260208301906115d3565b0390f35b34610118576003196060368201126101185761030a611165565b602435906001600160401b0392838311610118576101608091843603011261011857604051908101818110858211176104155760405261034c836004016111a7565b8152602483013560208201526044830135604082015260648301358481116101185761037e906004369186010161158c565b60608201526084830135608082015260a483013560a082015260c483013560c08201526103ad60e484016111a7565b60e082015261010483013561010082015261012483013593841161011857610144610401936103e56102ec966004369184010161158c565b61012084015201356101408201526103fb61117b565b91612a69565b604051918291602083526020830190611265565b634e487b7160e01b600052604160045260246000fd5b3461011857606036600319011261011857610444611165565b61044c61114f565b9061045561117b565b61045d611668565b5061046782611bfe565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa9283156107db576000936108ae575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa9384156107db5760009461087a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa9081156107db57600091610848575b5060008212838381031281169084848103139015161761083257879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156107db5760009b6107fe575b5060206040519e8f906105ca826114e0565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a0840151519261060f8461171c565b9361061d6040519586611550565b80855261062c601f199161171c565b0160005b8181106107e757505060005b60a0860151805160ff83161015610690579061066a8861066361068b9460ff851690611778565b5187612a69565b61067760ff831688611778565b5261068560ff821687611778565b50611bd4565b61063c565b6106e88387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa9182156107db576000926107a5575b6102ec995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061074b826114c4565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061131c565b91506020893d6020116107d3575b816107c060209383611550565b81010312610118576102ec985191610704565b3d91506107b3565b6040513d6000823e3d90fd5b6020906107f2612688565b82828901015201610630565b909a506020813d60201161082a575b8161081a60209383611550565b81010312610118575199386105b8565b3d915061080d565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610872575b8161086360209383611550565b8101031261011857518861052b565b3d9150610856565b9093506020813d6020116108a6575b8161089660209383611550565b81010312610118575192866104e5565b3d9150610889565b9092506020813d6020116108da575b816108ca60209383611550565b81010312610118575191856104a7565b3d91506108bd565b346101185760e0366003190112610118576004356001600160a01b03811681036101185761090e61114f565b61091661117b565b916001600160401b03806064351161011857366023606435011215610118576064356004013511610118573660246064356004013560071b606435010111610118576084356001600160a01b03811690036101185760a4356001600160a01b038116900361011857600492602061098b611191565b926109976101c06114a9565b60006101c0526060826101c001526109ad611668565b61020052600061022052604051631f94a27560e31b815295869182906001600160a01b03165afa9384156107db5760009461110b575b506109f36064356004013561171c565b92610a016040519485611550565b60046064350135808552601f1990610a189061171c565b0160005b8181106110f457505060005b60643560040135811061102b575050604051636eb1769f60e11b81526001600160a01b036084358116600483015260a435166024820152602081806044810103816001600160a01b0386165afa9081156107db57600091610ff9575b50610a8d611668565b50610a9782611bfe565b60a0526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156107db57600091610fc7575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa9081156107db57600091610f95575b5060a0515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa80156107db576000608052610f62575b506000821283838103128116908484810313901516176108325760249260a051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156107db5760009b610f2e575b50610bfd6040518060c0526114e0565b60c05152608051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a0805101515193610c5e8561171c565b94610c6c6040519687611550565b808652610c7b601f199161171c565b0160005b818110610f1757505060005b60a080510151805160ff83161015610cd65790610cb6610cd1926106636084359160ff851690611778565b610cc360ff831689611778565b5261068560ff821688611778565b610c8b565b50508585858560a0519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156107db57600091610ee5575b5060a0519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e610d84826114c4565b60c051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa9182156107db57600092610eb1575b5060405193610e1f856114a9565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b818110610e90575050508293610e859151601f1985830301606086015261131c565b905160808301520390f35b909195602061012082610ea66001948b516111bb565b019701929101610e63565b9091506020813d602011610edd575b81610ecd60209383611550565b8101031261011857519084610e11565b3d9150610ec0565b90506020813d602011610f0f575b81610f0060209383611550565b8101031261011857518a610d3c565b3d9150610ef3565b602090610f22612688565b82828a01015201610c7f565b909a506020813d602011610f5a575b81610f4a60209383611550565b8101031261011857519938610bed565b3d9150610f3d565b6020813d602011610f8d575b81610f7b60209383611550565b81010312610118575160805288610b5d565b3d9150610f6e565b90506020813d602011610fbf575b81610fb060209383611550565b81010312610118575187610b13565b3d9150610fa3565b90506020813d602011610ff1575b81610fe260209383611550565b81010312610118575186610ad6565b3d9150610fd5565b90506020813d602011611023575b8161101460209383611550565b81010312610118575185610a84565b3d9150611007565b60806023198260071b60643501360301126101185760405161104c816114a9565b606435600783901b01602401356001600160a01b038116900361011857606435600783901b01602481013582526110cd919061108a906044016111a7565b60208201526110a160648460071b813501016111a7565b60408201526110b960848460071b60643501016111a7565b606082015260a435906084359089866117a2565b6110d78287611778565b526110e28186611778565b50600019811461083257600101610a28565b6020906110ff611733565b82828901015201610a1c565b9093506020813d602011611147575b8161112760209383611550565b8101031261011857516001600160a01b03811681036101185792846109e3565b3d915061111a565b602435906001600160a01b038216820361011857565b600435906001600160a01b038216820361011857565b604435906001600160a01b038216820361011857565b60c435906001600160a01b038216820361011857565b35906001600160a01b038216820361011857565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112305750506000910152565b8181015183820152602001611220565b906020916112598151809281855285808601910161121d565b601f01601f1916010190565b9061130360018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526112b760a08501516101c08060a0870152850190611240565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611240565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161138e6101609384610280880152610320870190611240565b9060e0830151166102a0860152610100808301516102c08701526113c661012092838501516101bf19898303016102e08a0152611240565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061147a5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806114998f93600194601f1987830301885251611265565b9e0193019301919493929061142b565b608081019081106001600160401b0382111761041557604052565b6101c081019081106001600160401b0382111761041557604052565b61016081019081106001600160401b0382111761041557604052565b61012081019081106001600160401b0382111761041557604052565b61018081019081106001600160401b0382111761041557604052565b61010081019081106001600160401b0382111761041557604052565b90601f801991011681019081106001600160401b0382111761041557604052565b6001600160401b03811161041557601f01601f191660200190565b81601f82011215610118578035906115a382611571565b926115b16040519485611550565b8284526020838301011161011857816000926020809301838601378301015290565b9061165a60018060a01b0380845116835260208401516020840152604084015160408401526116116060850151610160806060870152850190611240565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611240565b916101408091015191015290565b60405190611675826114c4565b6040516101a083611685836114e0565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b0381116104155760051b60200190565b60405190611740826114fc565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b805182101561178c5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b93919092936117af611733565b508151602080840151606085015160409586018051965163c44b11f760e01b81526001600160a01b0397881660048201529487169990979287169694959094918216939186916024918391165afa9384156107db57600094611a61575b50604051636eb1769f60e11b81526001600160a01b038481166004830152919091166024820152906020826044818b5afa9182156107db57600092611a2d575b506040516370a0823160e01b81526001600160a01b0390931660048401819052946020846024818c5afa9384156107db576000946119f9575b506040516370a0823160e01b81526004810187905294602086602481855afa9586156107db576000966119c5575b50604051966370a0823160e01b88526004880152602087602481865afa9687156107db57600097611990575b5051965160405163b3596f0760e01b81526001600160a01b039182166004820152986020918a916024918391165afa9788156107db57600098611959575b506040519861192b8a6114fc565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611988575b8161197460209383611550565b81010312611985575051963861191d565b80fd5b3d9150611967565b90966020823d6020116119bd575b816119ab60209383611550565b810103126119855750519560206118df565b3d915061199e565b90956020823d6020116119f1575b816119e060209383611550565b8101031261198557505194386118b3565b3d91506119d3565b90936020823d602011611a25575b81611a1460209383611550565b810103126119855750519238611885565b3d9150611a07565b90916020823d602011611a59575b81611a4860209383611550565b81010312611985575051903861184c565b3d9150611a3b565b6020949194813d602011611ac7575b81611a7d60209383611550565b81010312611ac3576040519160208301908382106001600160401b03831117611aaf575060405251815292602061180c565b634e487b7160e01b81526041600452602490fd5b5080fd5b3d9150611a70565b519060ff8216820361011857565b51906001600160a01b038216820361011857565b51906001600160401b038216820361011857565b51906cffffffffffffffffffffffffff8216820361011857565b602081830312610118578051906001600160401b038211610118570181601f82011215610118578051611b5181611571565b92611b5f6040519485611550565b8184526020828401011161011857611b7d916020808501910161121d565b90565b60405190611b8d826114e0565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146108325760010190565b6301e13380908060001904821181151516610832570290565b60e0526000610160604051611c1281611518565b604051611c1e81611534565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa80156107db5760006101205261264c575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa9182156107db57600092612610575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156107db576000926125d4575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156107db576000936125a0575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa9081156107db5760009161256e575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa9485156107db5760009561253a575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa9182156107db57600092612506575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa9485156107db576000956124d2575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa9889156107db5760009961249e575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa9384156107db5760009461246a575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa9283156107db57600093612436575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa9485156107db5760009561236a575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa80156107db5760006101005261232e575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156107db5760009c6122f2575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa9384156107db576000946122d5575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156107db576000610180526122a1575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156107db5760009261227c575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa9485156107db57600095612248575b506040516101408181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa8061016052156107db5760009061016051612210575b612086604051806101a052611534565b60018060a01b03166101a0515260206101a05101526101805160406101a051015260606101a051015260806101a051015260018060a01b031660a06101a051015260c06101a051015260e06101a05101526120e660ff610120511661171c565b976120f4604051998a611550565b60ff61012051168952601f1961210f60ff610120511661171c565b0160005b8181106121f857505060005b60ff610120511660ff82161015612160578061214061215b9260e051612706565b61214d60ff83168d611778565b5261068560ff82168c611778565b61211f565b5091939597909294969861218a6001600160401b03612183816101005116611be5565b9216611be5565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121b48c611518565b6101a0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093612206611b80565b9201015201612113565b905060203d602011612241575b61222a8161014051611550565b602061014051809281010312610118575190612076565b503d61221d565b9094506020813d602011612274575b8161226460209383611550565b8101031261011857519338612027565b3d9150612257565b61229a9192503d806000833e6122928183611550565b810190611b1f565b9038611fe7565b6020813d6020116122cd575b816122ba60209383611550565b8101031261011857516101805238611fb7565b3d91506122ad565b6122eb9194503d806000833e6122928183611550565b9238611f86565b909b506020813d602011612326575b8161230e60209383611550565b810103126101185761231f90611af1565b9a38611f56565b3d9150612301565b6020813d602011612362575b8161234760209383611550565b810103126101185761235890611af1565b6101005238611f20565b3d915061233a565b909450610100813d6101001161242e575b816123896101009383611550565b81010312610118576040519061239e82611534565b6123a781611af1565b82526123b560208201611af1565b60208301526123c660408201611af1565b60408301526123d760608201611af1565b60608301526123e860808201611b05565b60808301526123f960a08201611b05565b60a083015260c081015164ffffffffff811681036101185760c08301526124229060e001611acf565b60e08201529338611ee2565b3d915061237b565b9092506020813d602011612462575b8161245260209383611550565b8101031261011857519138611eb0565b3d9150612445565b9093506020813d602011612496575b8161248660209383611550565b8101031261011857519238611e7f565b3d9150612479565b9098506020813d6020116124ca575b816124ba60209383611550565b8101031261011857519738611e4e565b3d91506124ad565b9094506020813d6020116124fe575b816124ee60209383611550565b8101031261011857519338611e1d565b3d91506124e1565b9091506020813d602011612532575b8161252260209383611550565b8101031261011857519038611dec565b3d9150612515565b9094506020813d602011612566575b8161255660209383611550565b8101031261011857519338611dbb565b3d9150612549565b90506020813d602011612598575b8161258960209383611550565b81010312610118575138611d8a565b3d915061257c565b9092506020813d6020116125cc575b816125bc60209383611550565b8101031261011857519138611d55565b3d91506125af565b9091506020813d602011612608575b816125f060209383611550565b810103126101185761260190611add565b9038611d24565b3d91506125e3565b9091506020813d602011612644575b8161262c60209383611550565b810103126101185761263d90611add565b9038611cf3565b3d915061261f565b6020813d602011612680575b8161266560209383611550565b810103126101185761267690611acf565b6101205238611cc2565b3d9150612658565b60405190612695826114c4565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361011857565b9061270f611b80565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612912576000936129b0575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156129a557600092612975575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128e857908c9796959493929160009561295a575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294f57908c9160009a61291d575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129125760009e6128f3575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128e85760009d6128b9575b5082519d8e612887816114e0565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128e1575b6128d08183611550565b810103126119855750519b38612879565b503d6128c6565b83513d6000823e3d90fd5b61290a908493929f3d8091833e6122928183611550565b9d9091612849565b85513d6000823e3d90fd5b9150988282813d8311612948575b6129358183611550565b8101031261198557508b9051983861280a565b503d61292b565b84513d6000823e3d90fd5b61296e91953d8091833e6122928183611550565b93386127d6565b90918582813d831161299e575b61298c8183611550565b81010312611985575051906004612793565b503d612982565b50513d6000823e3d90fd5b90928382813d8311612a62575b6129c78183611550565b810103126119855750612a5660e08651926129e184611534565b6129ea81611acf565b84526129f860208201611add565b6020850152612a08888201611add565b88850152612a1860608201611af1565b6060850152612a2960808201611af1565b6080850152612a3a60a08201611af1565b60a0850152612a4b60c08201611af1565b60c0850152016126f2565b60e08201529138612750565b503d6129bd565b9190612a73612688565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa9182156107db57600092612c50575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa9081156107db57600091612c16575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156107db5760009d612be2575b50604051809e612b8e826114c4565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612c0e575b81612bfd60209383611550565b810103126119855750519b38612b7f565b3d9150612bf0565b906020823d602011612c48575b81612c3060209383611550565b810103126119855750612c42906126f2565b38612afe565b3d9150612c23565b90916020823d602011612c7d575b81612c6b60209383611550565b81010312611985575051906020612aba565b3d9150612c5e56fea26469706673582212207418e97630c892b70737bf81c8d75f5fac482aeeb82a7a224915fe8f67b178e764736f6c63430008100033", + "sourceMap": "1061:2475:0:-:0;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6101c080604052600436101561001457600080fd5b60003560e01c9081630abe0bec1461106b575080635346cc1914610be3578063c2815c0b14610aa8578063cbe293fa14610a5c578063d4fc9fc6146108d55763ec7d7f7a1461006257600080fd5b3461065a5760e036600319011261065a576004356001600160a01b038116810361065a5761008e611122565b61009661125b565b916001600160401b03806064351161065a5736602360643501121561065a57606435600401351161065a573660246060606435600401350260643501011161065a576084356001600160a01b038116900361065a576004926100f661122f565b6020610100611245565b936000606060405161011181611138565b8281528185820152610121611656565b6040820152015260405196878092631f94a27560e31b825260018060a01b03165afa94851561066757600095610891575b506101626064356004013561170a565b9361017060405195866111fa565b60046064350135808652601f19906101879061170a565b0160005b81811061087a57505060005b6064356004013581106107cf575050604051636eb1769f60e11b81526001600160a01b03608435811660048301529091166024820152602081806044810103816001600160a01b0386165afa9081156106675760009161079d575b506101fb611656565b5061020582611bef565b6080526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156106675760009161076b575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa90811561066757600091610739575b506080515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa801561066757600060a052610706575b506000821283838103128116908484810313901516176106f057602492608051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156106675760009b6106bc575b5061036b6040518060c05261118a565b60c0515260a051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a0608051015151936103cd8561170a565b946103db60405196876111fa565b8086526103ea601f199161170a565b0160005b8181106106a557505060005b60a06080510151805160ff83161015610453579061042d61044e926104266084359160ff851690611766565b5187612a5a565b61043a60ff831689611766565b5261044860ff821688611766565b50611bc5565b6103fa565b5050858585856080519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa90811561066757600091610673575b506080519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e6105018261116e565b60c051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa9182156106675760009261062e575b506040519361059c85611138565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b81811061060d5750505082936106029151601f198583030160608601526113d2565b905160808301520390f35b9091956020610120826106236001948b51611271565b0197019291016105e0565b9091506020813d60201161065f575b8161064a602093836111fa565b8101031261065a5751908461058e565b600080fd5b3d915061063d565b6040513d6000823e3d90fd5b90506020813d60201161069d575b8161068e602093836111fa565b8101031261065a57518a6104b9565b3d9150610681565b6020906106b0612679565b82828a010152016103ee565b909a506020813d6020116106e8575b816106d8602093836111fa565b8101031261065a5751993861035b565b3d91506106cb565b634e487b7160e01b600052601160045260246000fd5b6020813d602011610731575b8161071f602093836111fa565b8101031261065a575160a052386102cb565b3d9150610712565b90506020813d602011610763575b81610754602093836111fa565b8101031261065a575138610281565b3d9150610747565b90506020813d602011610795575b81610786602093836111fa565b8101031261065a575138610244565b3d9150610779565b90506020813d6020116107c7575b816107b8602093836111fa565b8101031261065a5751386101f2565b3d91506107ab565b6060606435828202013603602319011261065a576040516107ef81611153565b6064356060830201602401356001600160a01b038116900361065a5760643560608302016024810135825261085391859161082c9060440161121b565b60208201526108436064606086028135010161121b565b6040820152608435908a86611790565b61085d8288611766565b526108688187611766565b5060001981146106f057600101610197565b602090610885611721565b82828a0101520161018b565b9094506020813d6020116108cd575b816108ad602093836111fa565b8101031261065a57516001600160a01b038116810361065a579338610152565b3d91506108a0565b3461065a5760208060031936011261065a576108f76108f261110c565b611bef565b906040519080825282519261018090818385015261098d60018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e0608088015197610960610100998a6102208b01526102a08a01906112f6565b9260a08201511661024089015260c0810151610260890152015161019f19878303016102808801526112f6565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610a2f578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610a4c838f8690600196030187528d516115c1565b9b019301930191949392906109e3565b3461065a57604036600319011261065a57610a7561110c565b6024359060ff8216820361065a57610aa491610a90916126f7565b6040519182916020835260208301906115c1565b0390f35b3461065a5760031960603682011261065a57610ac261110c565b602435906001600160401b039283831161065a576101608091843603011261065a5760405190810181811085821117610bcd57604052610b048360040161121b565b81526024830135602082015260448301356040820152606483013584811161065a57610b36906004369186010161157a565b60608201526084830135608082015260a483013560a082015260c483013560c0820152610b6560e4840161121b565b60e082015261010483013561010082015261012483013593841161065a57610144610bb993610b9d610aa4966004369184010161157a565b6101208401520135610140820152610bb361125b565b91612a5a565b60405191829160208352602083019061131b565b634e487b7160e01b600052604160045260246000fd5b3461065a57606036600319011261065a57610bfc61110c565b610c04611122565b90610c0d61125b565b610c15611656565b50610c1f82611bef565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa92831561066757600093611037575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa93841561066757600094611003575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa90811561066757600091610fd1575b506000821283838103128116908484810313901516176106f057879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156106675760009b610f9d575b5060206040519e8f90610d828261118a565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a08401515192610dc78461170a565b93610dd560405195866111fa565b808552610de4601f199161170a565b0160005b818110610f8657505060005b60a0860151805160ff83161015610e3b5790610e1b88610426610e369460ff851690611766565b610e2860ff831688611766565b5261044860ff821687611766565b610df4565b610e938387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa91821561066757600092610f50575b610aa4995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f90610ef68261116e565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526040519182916020835260208301906113d2565b91506020893d602011610f7e575b81610f6b602093836111fa565b8101031261065a57610aa4985191610eaf565b3d9150610f5e565b602090610f91612679565b82828901015201610de8565b909a506020813d602011610fc9575b81610fb9602093836111fa565b8101031261065a57519938610d70565b3d9150610fac565b90506020813d602011610ffb575b81610fec602093836111fa565b8101031261065a575188610ce3565b3d9150610fdf565b9093506020813d60201161102f575b8161101f602093836111fa565b8101031261065a57519286610c9d565b3d9150611012565b9092506020813d602011611063575b81611053602093836111fa565b8101031261065a57519185610c5f565b3d9150611046565b3461065a5760e036600319011261065a5761108461110c565b6001600160a01b0390602435828116810361065a57606036604319011261065a576110ae84611153565b604435838116810361065a578452606435838116810361065a576020850152608435928316830361065a57836110fd9360406101209601526110ee61122f565b916110f7611245565b93611790565b61110a6040518092611271565bf35b600435906001600160a01b038216820361065a57565b602435906001600160a01b038216820361065a57565b608081019081106001600160401b03821117610bcd57604052565b606081019081106001600160401b03821117610bcd57604052565b6101c081019081106001600160401b03821117610bcd57604052565b61016081019081106001600160401b03821117610bcd57604052565b61012081019081106001600160401b03821117610bcd57604052565b61018081019081106001600160401b03821117610bcd57604052565b61010081019081106001600160401b03821117610bcd57604052565b90601f801991011681019081106001600160401b03821117610bcd57604052565b35906001600160a01b038216820361065a57565b60a435906001600160a01b038216820361065a57565b60c435906001600160a01b038216820361065a57565b604435906001600160a01b038216820361065a57565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112e65750506000910152565b81810151838201526020016112d6565b9060209161130f815180928185528580860191016112d3565b601f01601f1916010190565b906113b960018060a01b038084511683526020840151602084015260408401516040840152606084015160608401526080840151608084015261136d60a08501516101c08060a08701528501906112f6565b9060c085015160c085015260e085015160e085015261010080860151908501526101209081860151169084015261014080850151908401526101608085015190848303908501526112f6565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161144461016093846102808801526103208701906112f6565b9060e0830151166102a0860152610100808301516102c087015261147c61012092838501516101bf19898303016102e08a01526112f6565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b8483106115305750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b848061154f8f93600194601f198783030188525161131b565b9e019301930191949392906114e1565b6001600160401b038111610bcd57601f01601f191660200190565b81601f8201121561065a578035906115918261155f565b9261159f60405194856111fa565b8284526020838301011161065a57816000926020809301838601378301015290565b9061164860018060a01b0380845116835260208401516020840152604084015160408401526115ff60608501516101608060608701528501906112f6565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e084015261010080850151908401526101208085015190848303908501526112f6565b916101408091015191015290565b604051906116638261116e565b6040516101a0836116738361118a565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b038111610bcd5760051b60200190565b6040519061172e826111a6565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b805182101561177a5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919390929361179d611721565b508051602080830151604093840151935163c44b11f760e01b81526001600160a01b039384166004808301829052909990979196928516959094908116939187916024918391165afa94851561066757600095611a53575b5060408051636eb1769f60e11b81526001600160a01b0380861689830190815293166020848101919091529093929091849182910103818b5afa91821561066757600092611a1f575b506040516370a0823160e01b81526001600160a01b03909316868401819052936020846024818c5afa938415610667576000946119eb575b506040516370a0823160e01b815287810186905294602086602481855afa958615610667576000966119b7575b50604051906370a0823160e01b825288820152602081602481855afa968715610667578a9160009861197f575b505160405163b3596f0760e01b8152988901919091529697602090899060249082906001600160a01b03165afa97881561066757600098611948575b506040519861191a8a6111a6565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611977575b81611963602093836111fa565b81010312611974575051963861190c565b80fd5b3d9150611956565b9150966020823d6020116119af575b8161199b602093836111fa565b8101031261197457505195899060246118d0565b3d915061198e565b90956020823d6020116119e3575b816119d2602093836111fa565b8101031261197457505194386118a3565b3d91506119c5565b90936020823d602011611a17575b81611a06602093836111fa565b810103126119745750519238611876565b3d91506119f9565b90916020823d602011611a4b575b81611a3a602093836111fa565b81010312611974575051903861183e565b3d9150611a2d565b6020959195813d602011611ab8575b81611a6f602093836111fa565b81010312611ab4576040519160208301908382106001600160401b03831117611aa157506040525181529360206117f5565b634e487b7160e01b815260418952602490fd5b5080fd5b3d9150611a62565b519060ff8216820361065a57565b51906001600160a01b038216820361065a57565b51906001600160401b038216820361065a57565b51906cffffffffffffffffffffffffff8216820361065a57565b60208183031261065a578051906001600160401b03821161065a570181601f8201121561065a578051611b428161155f565b92611b5060405194856111fa565b8184526020828401011161065a57611b6e91602080850191016112d3565b90565b60405190611b7e8261118a565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146106f05760010190565b6301e133809080600019048211811515166106f0570290565b60e0526000610160604051611c03816111c2565b604051611c0f816111de565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa80156106675760006101405261263d575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa91821561066757600092612601575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa918215610667576000926125c5575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa92831561066757600093612591575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa9081156106675760009161255f575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa9485156106675760009561252b575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa918215610667576000926124f7575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa948515610667576000956124c3575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa9889156106675760009961248f575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa9384156106675760009461245b575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa92831561066757600093612427575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa9485156106675760009561235b575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa80156106675760006101205261231f575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156106675760009c6122e3575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa938415610667576000946122c6575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa801561066757600061016052612292575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156106675760009261226d575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa94851561066757600095612239575b506040516101808181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa806101a05215610667576000906101a051612201575b61207760405180610100526111de565b60018060a01b0316610100515260206101005101526101605160406101005101526060610100510152608061010051015260018060a01b031660a061010051015260c061010051015260e06101005101526120d760ff610140511661170a565b976120e5604051998a6111fa565b60ff61014051168952601f1961210060ff610140511661170a565b0160005b8181106121e957505060005b60ff610140511660ff82161015612151578061213161214c9260e0516126f7565b61213e60ff83168d611766565b5261044860ff82168c611766565b612110565b5091939597909294969861217b6001600160401b03612174816101205116611bd6565b9216611bd6565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121a58c6111c2565b610100518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b602080936121f7611b71565b9201015201612104565b905060203d602011612232575b61221b81610180516111fa565b60206101805180928101031261065a575190612067565b503d61220e565b9094506020813d602011612265575b81612255602093836111fa565b8101031261065a57519338612018565b3d9150612248565b61228b9192503d806000833e61228381836111fa565b810190611b10565b9038611fd8565b6020813d6020116122be575b816122ab602093836111fa565b8101031261065a57516101605238611fa8565b3d915061229e565b6122dc9194503d806000833e61228381836111fa565b9238611f77565b909b506020813d602011612317575b816122ff602093836111fa565b8101031261065a5761231090611ae2565b9a38611f47565b3d91506122f2565b6020813d602011612353575b81612338602093836111fa565b8101031261065a5761234990611ae2565b6101205238611f11565b3d915061232b565b909450610100813d6101001161241f575b8161237a61010093836111fa565b8101031261065a576040519061238f826111de565b61239881611ae2565b82526123a660208201611ae2565b60208301526123b760408201611ae2565b60408301526123c860608201611ae2565b60608301526123d960808201611af6565b60808301526123ea60a08201611af6565b60a083015260c081015164ffffffffff8116810361065a5760c08301526124139060e001611ac0565b60e08201529338611ed3565b3d915061236c565b9092506020813d602011612453575b81612443602093836111fa565b8101031261065a57519138611ea1565b3d9150612436565b9093506020813d602011612487575b81612477602093836111fa565b8101031261065a57519238611e70565b3d915061246a565b9098506020813d6020116124bb575b816124ab602093836111fa565b8101031261065a57519738611e3f565b3d915061249e565b9094506020813d6020116124ef575b816124df602093836111fa565b8101031261065a57519338611e0e565b3d91506124d2565b9091506020813d602011612523575b81612513602093836111fa565b8101031261065a57519038611ddd565b3d9150612506565b9094506020813d602011612557575b81612547602093836111fa565b8101031261065a57519338611dac565b3d915061253a565b90506020813d602011612589575b8161257a602093836111fa565b8101031261065a575138611d7b565b3d915061256d565b9092506020813d6020116125bd575b816125ad602093836111fa565b8101031261065a57519138611d46565b3d91506125a0565b9091506020813d6020116125f9575b816125e1602093836111fa565b8101031261065a576125f290611ace565b9038611d15565b3d91506125d4565b9091506020813d602011612635575b8161261d602093836111fa565b8101031261065a5761262e90611ace565b9038611ce4565b3d9150612610565b6020813d602011612671575b81612656602093836111fa565b8101031261065a5761266790611ac0565b6101405238611cb3565b3d9150612649565b604051906126868261116e565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361065a57565b90612700611b71565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612903576000936129a1575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa91821561299657600092612966575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128d957908c9796959493929160009561294b575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294057908c9160009a61290e575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129035760009e6128e4575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128d95760009d6128aa575b5082519d8e6128788161118a565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128d2575b6128c181836111fa565b810103126119745750519b3861286a565b503d6128b7565b83513d6000823e3d90fd5b6128fb908493929f3d8091833e61228381836111fa565b9d909161283a565b85513d6000823e3d90fd5b9150988282813d8311612939575b61292681836111fa565b8101031261197457508b905198386127fb565b503d61291c565b84513d6000823e3d90fd5b61295f91953d8091833e61228381836111fa565b93386127c7565b90918582813d831161298f575b61297d81836111fa565b81010312611974575051906004612784565b503d612973565b50513d6000823e3d90fd5b90928382813d8311612a53575b6129b881836111fa565b810103126119745750612a4760e08651926129d2846111de565b6129db81611ac0565b84526129e960208201611ace565b60208501526129f9888201611ace565b88850152612a0960608201611ae2565b6060850152612a1a60808201611ae2565b6080850152612a2b60a08201611ae2565b60a0850152612a3c60c08201611ae2565b60c0850152016126e3565b60e08201529138612741565b503d6129ae565b9190612a64612679565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa91821561066757600092612c41575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa90811561066757600091612c07575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156106675760009d612bd3575b50604051809e612b7f8261116e565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612bff575b81612bee602093836111fa565b810103126119745750519b38612b70565b3d9150612be1565b906020823d602011612c39575b81612c21602093836111fa565b810103126119745750612c33906126e3565b38612aef565b3d9150612c14565b90916020823d602011612c6e575b81612c5c602093836111fa565b81010312611974575051906020612aab565b3d9150612c4f56fea26469706673582212208459a3957dd5de7ced8901e02eca616c894cc774f6c517f2383cf460cc41b09d64736f6c63430008100033", - "sourceMap": "1061:2431:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1931:25;;1061:2431;;;;;;1931:25;;;;;;;1061:2431;1931:25;;;1061:2431;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::i;:::-;;;;;;;;;2078:10;;1061:2431;2090:15;1061:2431;;;;;2090:15;;;;-1:-1:-1;;1061:2431:0;;-1:-1:-1;;;2262:33:0;;-1:-1:-1;;;;;1061:2431:0;;;;;2262:33;;1061:2431;;;;;;;;;;;;;;2262:33;1061:2431;-1:-1:-1;;;;;1061:2431:0;;2262:33;;;;;;;1061:2431;2262:33;;;2073:129;1061:2431;;;:::i;:::-;;8385:12:1;;;:::i;:::-;;;1061:2431:0;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8434:24:1;;1061:2431:0;;;;;;;;;;;8434:24:1;;;;;;;1061:2431:0;8434:24:1;;;2073:129:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8494:30:1;;1061:2431:0;;;;;;;;;;;8494:30:1;;;;;;;1061:2431:0;8494:30:1;;;2073:129:0;-1:-1:-1;8385:12:1;8621:18;;1061:2431:0;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;;8668:70:1;;1061:2431:0;;;;;;;;;;;;;;;;;8668:70:1;;;;;;1061:2431:0;;8668:70:1;;;2073:129:0;1061:2431;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;8385:12;8828:18;;:25;1061:2431:0;8828:25:1;;;8871:27;1061:2431:0;8871:27:1;;1061:2431:0;;8917:28:1;;1061:2431:0;8959:23:1;8385:12;8959:23;;;1061:2431:0;;;;;;;9001:28:1;;1061:2431:0;;9044:24:1;;;;1061:2431:0;9092:33:1;1061:2431:0;9092:33:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;9148:54:1;;1061:2431:0;;;;;;;;;9148:54:1;;1061:2431:0;9148:54:1;;;;;;;1061:2431:0;9148:54:1;;;2073:129:0;1061:2431;;;;;9044:24:1;1061:2431:0;;:::i;:::-;9044:24:1;1061:2431:0;;;;;9044:24:1;8576:633;;1061:2431:0;;;9044:24:1;8576:633;;1061:2431:0;;9044:24:1;8576:633;;1061:2431:0;8385:12:1;9044:24;8576:633;;1061:2431:0;;9044:24:1;8576:633;;1061:2431:0;9044:24:1;8576:633;;;1061:2431:0;;9044:24:1;8576:633;;1061:2431:0;8576:633:1;9044:24;8576:633;;1061:2431:0;8576:633:1;9044:24;8576:633;;1061:2431:0;8576:633:1;9044:24;8576:633;;1061:2431:0;;8385:12:1;9311:25;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1061:2431:0;9411:3:1;1061:2431:0;8385:12:1;9311:25;;9377;1061:2431:0;;;;;9373:36:1;;;;1061:2431:0;9436:71:1;9411:3;1061:2431:0;9469:28:1;1061:2431:0;;;;;;9469:28:1;;:::i;:::-;;9436:71;;:::i;:::-;9424:83;1061:2431:0;;;9424:83:1;;:::i;:::-;;;1061:2431:0;;;9424:83:1;;:::i;:::-;;9411:3;:::i;:::-;9360:11;;9373:36;;;;;;;8385:12;9619:26;;1061:2431:0;9619:26:1;;1061:2431:0;9680:32:1;1061:2431:0;9680:32:1;;1061:2431:0;9747:32:1;1061:2431:0;;8385:12:1;1061:2431:0;9747:32:1;;1061:2431:0;9800:18:1;;1061:2431:0;;;;;;;;;;;9845:32:1;;1061:2431:0;;;;;;;;;9845:32:1;;1061:2431:0;;;;;;;;;;;;9845:32:1;;;;;;;1061:2431:0;9845:32:1;;;9355:159;9930:16;8385:12;9930:16;;9044:24;9930:16;;1061:2431:0;;;;;;;;;;9982:15:1;10020:20;1061:2431:0;10020:20:1;;1061:2431:0;10072:29:1;8576:633;10072:29;;1061:2431:0;10124:20:1;8576:633;10124:20;;1061:2431:0;10176:29:1;8576:633;10176:29;;1061:2431:0;10235:27:1;1061:2431:0;10235:27:1;1061:2431:0;;;;;;;;;:::i;:::-;9044:24:1;1061:2431:0;;;;9533:738:1;;1061:2431:0;;9533:738:1;1061:2431:0;;9533:738:1;;1061:2431:0;8385:12:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9044:24:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9533:738:1;;;1061:2431:0;9533:738:1;;;1061:2431:0;;;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;;;;;;;;2411:38;;1061:2431;2411:38;1061:2431;2411:38;;;;;;;1061:2431;2411:38;;;9355:159:1;1061:2431:0;;;;;;;:::i;:::-;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;2221:237;;1061:2431;;;;;;;;;;;;;;;;;;;;8385:12:1;1061:2431:0;;;;;;;;;;9044:24:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8385:12:1;1061:2431:0;;;;;;;;;;;8576:633:1;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;2411:38;;;;1061:2431;2411:38;;1061:2431;2411:38;;;;;;1061:2431;2411:38;;;:::i;:::-;;;1061:2431;;;;;2411:38;;;;1061:2431;;;;2411:38;;;-1:-1:-1;2411:38:0;;;1061:2431;;;;;;;;;9845:32:1;;;1061:2431:0;9845:32:1;;1061:2431:0;9845:32:1;;;;;;1061:2431:0;9845:32:1;;;:::i;:::-;;;1061:2431:0;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;1061:2431:0;;;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;1061:2431:0;9148:54:1;;1061:2431:0;9148:54:1;;;;;;1061:2431:0;9148:54:1;;;:::i;:::-;;;1061:2431:0;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;1061:2431:0;;;;;;;;;;;;8668:70:1;1061:2431:0;8668:70:1;;1061:2431:0;8668:70:1;;;;;;1061:2431:0;8668:70:1;;;:::i;:::-;;;1061:2431:0;;;;;;8668:70:1;;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;1061:2431:0;8494:30:1;;1061:2431:0;8494:30:1;;;;;;1061:2431:0;8494:30:1;;;:::i;:::-;;;1061:2431:0;;;;;8494:30:1;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;1061:2431:0;8434:24:1;;1061:2431:0;8434:24:1;;;;;;1061:2431:0;8434:24:1;;;:::i;:::-;;;1061:2431:0;;;;;8434:24:1;;;;;;-1:-1:-1;8434:24:1;;2262:33:0;;;1061:2431;2262:33;;1061:2431;2262:33;;;;;;1061:2431;2262:33;;;:::i;:::-;;;1061:2431;;;;;2262:33;;;;;;-1:-1:-1;2262:33:0;;2107:3;1061:2431;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;2132:63;;1061:2431;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2132:63;;;;:::i;:::-;2120:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2431:0;;;;;;2078:10;;1061:2431;;;;;:::i;:::-;;;;;;;;;;1931:25;;;;1061:2431;1931:25;;1061:2431;1931:25;;;;;;1061:2431;1931:25;;;:::i;:::-;;;1061:2431;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;1931:25;;;;;;;-1:-1:-1;1931:25:0;;1061:2431;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8385:12:1;;;:::i;:::-;1061:2431:0;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1061:2431:0;;;;8434:24:1;;1061:2431:0;;;;;;;8434:24:1;;1061:2431:0;;;;;;;;8434:24:1;;;;;;;1061:2431:0;8434:24:1;;;1061:2431:0;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1061:2431:0;;;;8494:30:1;;1061:2431:0;;;;8434:24:1;;1061:2431:0;;;;;;;;8494:30:1;;;;;;;1061:2431:0;8494:30:1;;;1061:2431:0;-1:-1:-1;8621:18:1;;1061:2431:0;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1061:2431:0;;;;8668:70:1;;1061:2431:0;;;;;;;;;;;;;8434:24:1;1061:2431:0;;;;8668:70:1;;;;;;;1061:2431:0;8668:70:1;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;;;;:25;1061:2431:0;8828:25:1;;;8871:27;1061:2431:0;8871:27:1;;1061:2431:0;;8917:28:1;;1061:2431:0;8959:23:1;;;;;1061:2431:0;;;;;;;9001:28:1;;1061:2431:0;;9044:24:1;;;;1061:2431:0;9092:33:1;8434:24;9092:33;;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;9148:54:1;;1061:2431:0;;;;;;;9148:54:1;;1061:2431:0;9148:54:1;;;;;;;1061:2431:0;9148:54:1;;;1061:2431:0;;8434:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;8576:633:1;1061:2431:0;;;8576:633:1;;1061:2431:0;;8576:633:1;;1061:2431:0;8959:23:1;8576:633;;1061:2431:0;;8576:633:1;;1061:2431:0;9044:24:1;8576:633;;1061:2431:0;;8576:633:1;;1061:2431:0;8576:633:1;;;1061:2431:0;8576:633:1;;;1061:2431:0;8576:633:1;;;1061:2431:0;;9311:25:1;;;1061:2431:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1061:2431:0;9411:3:1;1061:2431:0;9311:25:1;;9377;1061:2431:0;;;;;9373:36:1;;;;1061:2431:0;9436:71:1;1061:2431:0;9469:28:1;9411:3;1061:2431:0;;;;9469:28:1;;:::i;9436:71::-;9424:83;1061:2431:0;;;9424:83:1;;:::i;:::-;;;1061:2431:0;;;9424:83:1;;:::i;9411:3::-;9360:11;;9373:36;9845:32;9373:36;;;;;;8434:24;9619:26;;1061:2431:0;9680:32:1;1061:2431:0;9680:32:1;;1061:2431:0;9747:32:1;8434:24;1061:2431:0;9747:32:1;;1061:2431:0;9800:18:1;8959:23;9800:18;;1061:2431:0;;;;;;;;;;;;9845:32:1;;;1061:2431:0;9845:32:1;;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;9845:32:1;;;-1:-1:-1;;;;;1061:2431:0;9845:32:1;;;;;;;1061:2431:0;9845:32:1;;;9355:159;1061:2431:0;9930:16:1;;9044:24;9930:16;;1061:2431:0;;;;;;;;9982:15:1;10020:20;1061:2431:0;10020:20:1;;1061:2431:0;10072:29:1;8576:633;10072:29;;1061:2431:0;10124:20:1;8576:633;10124:20;;1061:2431:0;10176:29:1;1061:2431:0;8576:633:1;10176:29;;1061:2431:0;10235:27:1;;1061:2431:0;;8434:24:1;1061:2431:0;;;;;;;;:::i;:::-;;;9533:738:1;1061:2431:0;;9533:738:1;;1061:2431:0;;9533:738:1;;1061:2431:0;8959:23:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9044:24:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;8576:633:1;9533:738;;1061:2431:0;;9533:738:1;;1061:2431:0;9533:738:1;;;1061:2431:0;9533:738:1;;;1061:2431:0;;;;;;8434:24:1;1061:2431:0;;8434:24:1;1061:2431:0;;;;:::i;9845:32:1:-;;;8434:24;9845:32;;8434:24;9845:32;;;;;;8434:24;9845:32;;;:::i;:::-;;;1061:2431:0;;;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;1061:2431:0;8434:24:1;1061:2431:0;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;8434:24;9148:54;;8434:24;9148:54;;;;;;8434:24;9148:54;;;:::i;:::-;;;1061:2431:0;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;8668:70;;;8434:24;8668:70;;8434:24;8668:70;;;;;;8434:24;8668:70;;;:::i;:::-;;;1061:2431:0;;;;;8668:70:1;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;;8434:24;8494:30;;8434:24;8494:30;;;;;;8434:24;8494:30;;;:::i;:::-;;;1061:2431:0;;;;;8494:30:1;;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;8434:24:1;;;;;;;-1:-1:-1;8434:24:1;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;;;:::i;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;-1:-1:-1;;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;-1:-1:-1;;1061:2431:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2467:1023;;;;;;1061:2431;;:::i;:::-;-1:-1:-1;1061:2431:0;;2768:29;;;;1061:2431;2833:31;;;;1061:2431;;;-1:-1:-1;;;2930:38:0;;-1:-1:-1;;;;;1061:2431:0;;;2930:38;;;;1061:2431;;;;;2930:38;;1061:2431;;;;;;;;;;;;2768:29;1061:2431;;;;;;;2930:38;;;;;;;-1:-1:-1;2930:38:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;;-1:-1:-1;;;3163:34:0;;-1:-1:-1;;;;;1061:2431:0;;;3163:34;;;1061:2431;;;;;2768:29;1061:2431;;;;;;;;;;2768:29;;1061:2431;;;;;3163:34;;;;;;;;;;-1:-1:-1;3163:34:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3216:25:0;;-1:-1:-1;;;;;1061:2431:0;;;3216:25;;;1061:2431;;;;2768:29;1061:2431;;;3216:25;;;;;;;;-1:-1:-1;3216:25:0;;;2467:1023;-1:-1:-1;2833:31:0;1061:2431;-1:-1:-1;;;3270:34:0;;;;;1061:2431;;;;2768:29;1061:2431;;;3270:34;;;;;;;;-1:-1:-1;3270:34:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;3335:34;;;;;1061:2431;2768:29;3335:34;1061:2431;3335:34;;;;;;;;;;;-1:-1:-1;3335:34:0;;;2467:1023;-1:-1:-1;1061:2431:0;2833:31;1061:2431;-1:-1:-1;;;3434:42:0;;;;;1061:2431;;;;;;2768:29;;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;3434:42;;;;;;;-1:-1:-1;3434:42:0;;;2467:1023;1061:2431;2833:31;1061:2431;;;;;:::i;:::-;;;2768:29;2988:497;;1061:2431;2833:31;2988:497;;1061:2431;2988:497;;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;;2988:497;;1061:2431;2988:497;;;1061:2431;2467:1023;:::o;3434:42::-;;;2768:29;3434:42;;2768:29;3434:42;;;;;;2768:29;3434:42;;;:::i;:::-;;;1061:2431;;;;;;3434:42;;;;1061:2431;;;3434:42;;;-1:-1:-1;3434:42:0;;3335:34;;;;2768:29;3335:34;;2768:29;3335:34;;;;;;2768:29;3335:34;;;:::i;:::-;;;1061:2431;;;;-1:-1:-1;1061:2431:0;;;;;3335:34;;;;;-1:-1:-1;3335:34:0;;3270;;;2768:29;3270:34;;2768:29;3270:34;;;;;;2768:29;3270:34;;;:::i;:::-;;;1061:2431;;;;;;3270:34;;;;;;;-1:-1:-1;3270:34:0;;3216:25;;;2768:29;3216:25;;2768:29;3216:25;;;;;;2768:29;3216:25;;;:::i;:::-;;;1061:2431;;;;;;3216:25;;;;;;;-1:-1:-1;3216:25:0;;3163:34;;;2768:29;3163:34;;2768:29;3163:34;;;;;;2768:29;3163:34;;;:::i;:::-;;;1061:2431;;;;;;3163:34;;;;;;;-1:-1:-1;3163:34:0;;2930:38;2768:29;2930:38;;;;;2768:29;2930:38;;;;;;2768:29;2930:38;;;:::i;:::-;;;1061:2431;;;;2833:31;1061:2431;;2768:29;1061:2431;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;-1:-1:-1;2833:31:0;1061:2431;;;;;2768:29;2930:38;;1061:2431;-1:-1:-1;;;1061:2431:0;;;;;;;;;;;;2930:38;;;-1:-1:-1;2930:38:0;;1061:2431;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2431:0;;;;4218:18:1;;;;;;;;;;;:::o;6179:2007::-;;;-1:-1:-1;1061:2431:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;6270:17:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6270:17:1;;;;;;-1:-1:-1;1061:2431:0;6270:17:1;;;6179:2007;1061:2431:0;;;;;;;6313:17:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;;6179:2007;1061:2431:0;;;;;;;6365:26:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;;6179:2007;1061:2431:0;;;;;;;6414:21:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6467:26:1;;6179:2007;6270:15;1061:2431:0;;;;6270:17:1;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;6467:26:1;;;;;;;-1:-1:-1;6467:26:1;;;6179:2007;1061:2431:0;;;;;;;6530:31:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;;6179:2007;1061:2431:0;;;;;;;6598:31:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;;6179:2007;1061:2431:0;;;;;;;6660:25:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;;6179:2007;1061:2431:0;;;;;;;6710:22:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;;6179:2007;1061:2431:0;;;;;;;6757:19:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;;6179:2007;1061:2431:0;;;;;;;6801:19:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;;6179:2007;1061:2431:0;;;;;;;6865:19:1;;1061:2431:0;;6270:17:1;1061:2431:0;;;;;;6179:2007:1;6270:15;1061:2431:0;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;6917:32:1;;6270:17;6917:32;;1061:2431:0;;;6179:2007:1;6270:15;1061:2431:0;;;;;;;;-1:-1:-1;;;;;1061:2431:0;6917:32:1;;;;;;-1:-1:-1;1061:2431:0;6917:32:1;;;6179:2007;1061:2431:0;;;;;;;6982:32:1;;6270:17;6982:32;;1061:2431:0;;;;;;;;;;6179:2007:1;6270:15;1061:2431:0;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7104:25:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6270:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7104:25:1;;;;;;;-1:-1:-1;7104:25:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7147:27:1;;1061:2431:0;;6270:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7147:27:1;;;;;;-1:-1:-1;1061:2431:0;7147:27:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7216:23:1;;1061:2431:0;-1:-1:-1;1061:2431:0;6270:17:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;7216:23:1;;;;;;;-1:-1:-1;7216:23:1;;;6179:2007;-1:-1:-1;1061:2431:0;;-1:-1:-1;;;7291:34:1;;-1:-1:-1;;;;;1061:2431:0;;;6270:17:1;7291:34;;1061:2431:0;;6270:15:1;1061:2431:0;;;;;;;;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;;6179:2007;-1:-1:-1;1061:2431:0;;7349:42:1;;;;-1:-1:-1;;;7349:42:1;;;1061:2431:0;6270:15:1;7349:42;;-1:-1:-1;;;;;1061:2431:0;;;6270:17:1;7349:42;;;1061:2431:0;7349:42:1;;1061:2431:0;;;;7349:42:1;;1061:2431:0;;7349:42:1;;;;;;;;-1:-1:-1;7349:42:1;;;;;6179:2007;1061:2431:0;;;;;;;:::i;:::-;;;;;;;;;;;;7050:348:1;;1061:2431:0;;;;;7050:348:1;;1061:2431:0;;;7050:348:1;;1061:2431:0;;;7050:348:1;;1061:2431:0;;;;;;;;;7050:348:1;;1061:2431:0;;;7050:348:1;;1061:2431:0;6179:2007:1;1061:2431:0;7050:348:1;;1061:2431:0;;;;6253:34:1;1061:2431:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6253:34:1;1061:2431:0;;;;;;;;6253:34:1;1061:2431:0;;:::i;:::-;;-1:-1:-1;1061:2431:0;;;;;;7482:11:1;;-1:-1:-1;7510:3:1;1061:2431:0;;6253:34:1;1061:2431:0;;;;7495:13:1;;;;7535:24;;7510:3;7535:24;6179:2007;7535:24;;:::i;:::-;7523:36;1061:2431:0;;;7523:36:1;;:::i;:::-;;;1061:2431:0;;;7523:36:1;;:::i;7510:3::-;7482:11;;7495:13;;;;;;;;;;;7900:38;-1:-1:-1;;;;;7809:38:1;6890:59;1061:2431:0;6890:59:1;1061:2431:0;7809:38:1;:::i;:::-;1061:2431:0;;7900:38:1;:::i;:::-;8004:27;1061:2431:0;;8004:27:1;1061:2431:0;8004:27:1;;4218:18;1061:2431:0;8097:27:1;;4218:18;1061:2431:0;;;;;;;;:::i;:::-;;;;;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;6179:2007:1;7585:596;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;;7585:596:1;;1061:2431:0;6179:2007:1;:::o;1061:2431:0:-;;;;;;;;:::i;:::-;;;;;;;;7349:42:1;;;1061:2431:0;7349:42:1;1061:2431:0;7349:42:1;;;;;;;;;:::i;:::-;1061:2431:0;7349:42:1;1061:2431:0;7349:42:1;;;;1061:2431:0;;;;;7349:42:1;;;;;;;;7291:34;;;;1061:2431:0;7291:34:1;;1061:2431:0;7291:34:1;;;;;;1061:2431:0;7291:34:1;;;:::i;:::-;;;1061:2431:0;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;7216:23;;;;;;;-1:-1:-1;7216:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7147:27;1061:2431:0;7147:27:1;;1061:2431:0;7147:27:1;;;;;;1061:2431:0;7147:27:1;;;:::i;:::-;;;1061:2431:0;;;;;;7147:27:1;;;;;;;-1:-1:-1;7147:27:1;;7104:25;;;;;;;-1:-1:-1;7104:25:1;;;;;;:::i;:::-;;;;;6982:32;;;;1061:2431:0;6982:32:1;;1061:2431:0;6982:32:1;;;;;;1061:2431:0;6982:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;6917;1061:2431:0;6917:32:1;;1061:2431:0;6917:32:1;;;;;;1061:2431:0;6917:32:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6917:32:1;;;;;;;-1:-1:-1;6917:32:1;;6865:19;;;;1061:2431:0;6865:19:1;;1061:2431:0;6865:19:1;;;;;;1061:2431:0;6865:19:1;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2431:0;;:::i;:::-;6179:2007:1;1061:2431:0;;;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;6801;;;;1061:2431:0;6801:19:1;;1061:2431:0;6801:19:1;;;;;;1061:2431:0;6801:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;6757;;;;1061:2431:0;6757:19:1;;1061:2431:0;6757:19:1;;;;;;1061:2431:0;6757:19:1;;;:::i;:::-;;;1061:2431:0;;;;;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;6710:22;;;;1061:2431:0;6710:22:1;;1061:2431:0;6710:22:1;;;;;;1061:2431:0;6710:22:1;;;:::i;:::-;;;1061:2431:0;;;;;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;6660:25;;;;1061:2431:0;6660:25:1;;1061:2431:0;6660:25:1;;;;;;1061:2431:0;6660:25:1;;;:::i;:::-;;;1061:2431:0;;;;;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;6598:31;;;;1061:2431:0;6598:31:1;;1061:2431:0;6598:31:1;;;;;;1061:2431:0;6598:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;6530;;;;1061:2431:0;6530:31:1;;1061:2431:0;6530:31:1;;;;;;1061:2431:0;6530:31:1;;;:::i;:::-;;;1061:2431:0;;;;;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;6467:26;;;1061:2431:0;6467:26:1;;1061:2431:0;6467:26:1;;;;;;1061:2431:0;6467:26:1;;;:::i;:::-;;;1061:2431:0;;;;;6467:26:1;;;;;;-1:-1:-1;6467:26:1;;6414:21;;;;1061:2431:0;6414:21:1;;1061:2431:0;6414:21:1;;;;;;1061:2431:0;6414:21:1;;;:::i;:::-;;;1061:2431:0;;;;;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;6365:26;;;;1061:2431:0;6365:26:1;;1061:2431:0;6365:26:1;;;;;;1061:2431:0;6365:26:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;6313:17;;;;1061:2431:0;6313:17:1;;1061:2431:0;6313:17:1;;;;;;1061:2431:0;6313:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;6270;1061:2431:0;6270:17:1;;1061:2431:0;6270:17:1;;;;;;1061:2431:0;6270:17:1;;;:::i;:::-;;;1061:2431:0;;;;;;;:::i;:::-;;6270:17:1;;;;;;;-1:-1:-1;6270:17:1;;1061:2431:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2431:0;;;;;;:::o;10280:782:1:-;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;10416:25:1;;1061:2431:0;;;;10416:25:1;;;1061:2431:0;;-1:-1:-1;;;;;1061:2431:0;;;;;10416:25:1;;1061:2431:0;;;;10416:25:1;;;;;;;-1:-1:-1;10416:25:1;;;10280:782;1061:2431:0;;10504:15:1;;;;1061:2431:0;;;;;;-1:-1:-1;;;;;10547:32:1;10416:25;10547:32;;;;1061:2431:0;;;;;;;;;;;;;;10599:33:1;;;;;;;;;-1:-1:-1;10599:33:1;;;10280:782;10669:35;10416:25;10669:35;;1061:2431:0;10669:35:1;;1061:2431:0;;10733:27:1;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;;;;;;;;;10776:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10776:29:1;;;10280:782;10837:19;;;;1061:2431:0;;;;;;;;;;;;;;;10822:35:1;;10416:25;10822:35;;1061:2431:0;10822:35:1;;;;;;;;;;-1:-1:-1;10822:35:1;;;10280:782;1061:2431:0;;;10918:19:1;1061:2431:0;10918:19:1;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;;;;;;;;;;;;;;;10955:31:1;;;;10416:25;10955:31;-1:-1:-1;10955:31:1;;;;;;;-1:-1:-1;10955:31:1;;;10280:782;-1:-1:-1;1061:2431:0;;;-1:-1:-1;;;11009:39:1;;1061:2431:0;;10416:25:1;11009:39;;1061:2431:0;;;;;;;11009:39:1;;1061:2431:0;11009:39:1;;;;;;;-1:-1:-1;11009:39:1;;;10280:782;1061:2431:0;;;;;;;;:::i;:::-;;10461:596:1;;1061:2431:0;10461:596:1;;1061:2431:0;10461:596:1;;;1061:2431:0;10547:32:1;10461:596;;1061:2431:0;;10461:596:1;;1061:2431:0;10733:27:1;10461:596;;1061:2431:0;;10461:596:1;;1061:2431:0;10461:596:1;;1061:2431:0;10461:596:1;;;1061:2431:0;10461:596:1;;;1061:2431:0;10280:782:1;:::o;11009:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;11009:39:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10955:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10822:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;10822:35:1;;;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10776:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10599:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;10416:25:1;10599:33;;;;;;;;1061:2431:0;;;-1:-1:-1;1061:2431:0;;;;;10416:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10416:25:1;;;;;;;;;11066:925;;;1061:2431:0;;:::i;:::-;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11366:63:1;;-1:-1:-1;;;;;1061:2431:0;;;11366:63:1;;;1061:2431:0;;;;;;;;;;;;;;;11366:63:1;1061:2431:0;;;;11366:63:1;;;;;;;-1:-1:-1;11366:63:1;;;11066:925;-1:-1:-1;1061:2431:0;;;;-1:-1:-1;;;11448:57:1;;-1:-1:-1;;;;;1061:2431:0;;;11366:63:1;11448:57;;1061:2431:0;;;;;;;;;11366:63:1;;1061:2431:0;;;;;;11448:57:1;;;;;;;-1:-1:-1;11448:57:1;;;11066:925;-1:-1:-1;11366:63:1;11533:22;;1061:2431:0;;11575:14:1;;;1061:2431:0;11626:31:1;;;1061:2431:0;;11686:23:1;;1061:2431:0;11725:10:1;;;;11752:11;;;1061:2431:0;;11784:15:1;;1061:2431:0;11820:15:1;;;1061:2431:0;11853:12:1;;;;11888:17;;;1061:2431:0;;;;;-1:-1:-1;;;11930:47:1;;-1:-1:-1;;;;;1061:2431:0;;;11366:63:1;11930:47;;1061:2431:0;;11853:12:1;;1061:2431:0;;;;;;;;;;11725:10:1;;1061:2431:0;;;;;11930:47:1;;1061:2431:0;11930:47:1;11366:63;11930:47;;;;;;;-1:-1:-1;11930:47:1;;;11066:925;1061:2431:0;;;;;;;;:::i;:::-;;;11366:63:1;11265:721;1061:2431:0;-1:-1:-1;;;;;1061:2431:0;;11265:721:1;;1061:2431:0;11725:10:1;11265:721;;1061:2431:0;11626:31:1;11265:721;;1061:2431:0;;11265:721:1;;1061:2431:0;11752:11:1;11265:721;;1061:2431:0;;11265:721:1;;1061:2431:0;11820:15:1;11265:721;;1061:2431:0;11853:12:1;11265:721;;1061:2431:0;11888:17:1;11265:721;;1061:2431:0;11265:721:1;;;1061:2431:0;11265:721:1;;;1061:2431:0;11265:721:1;;;1061:2431:0;11066:925:1;:::o;11930:47::-;;;11366:63;11930:47;;11366:63;11930:47;;;;;;11366:63;11930:47;;;:::i;:::-;;;1061:2431:0;;;;;;11930:47:1;;;;;;;-1:-1:-1;11930:47:1;;11448:57;;11366:63;11448:57;;11366:63;11448:57;;;;;;11366:63;11448:57;;;:::i;:::-;;;1061:2431:0;;;;;;;;:::i;:::-;11448:57:1;;;;;;-1:-1:-1;11448:57:1;;11366:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2431:0;;;;-1:-1:-1;1061:2431:0;;11366:63:1;;;;;;-1:-1:-1;11366:63:1;", + "object": "0x6101c0604052600436101561001357600080fd5b60003560e01c80634853a7d7146108e25780635346cc191461042b578063c2815c0b146102f0578063cbe293fa146102a4578063d4fc9fc61461011d5763edd25e0b1461005f57600080fd5b346101185761010036600319011261011857610079611165565b602435906001600160a01b038083168303610118576080366043190112610118576040516100a6816114a9565b60443582811681036101185781526064358281168103610118576020820152608435828116810361011857604082015260a43582811681036101185760608201526100ef611191565b9060e43592831683036101185761012094610109946117a2565b61011660405180926111bb565bf35b600080fd5b34610118576020806003193601126101185761013f61013a611165565b611bfe565b90604051908082528251926101809081838501526101d560018060a01b03808751166101a0870152848701516101c087015260408701516101e0870152606087015161020087015260e06080880151976101a8610100998a6102208b01526102a08a0190611240565b9260a08201511661024089015260c0810151610260890152015161019f1987830301610280880152611240565b948382015160408601526040820151606086015260608201516080860152608082015160a086015260a082015193601f1990818789030160c08801528551908189528089019281808460051b8c01019801936000915b848310610277578a808b8b8b8b60c082015160e086015260e082015181860152810151610120908186015281015161014090818601528101519061016091828601520151908301520390f35b9091929394988480610294838f8690600196030187528d516115d3565b9b0193019301919493929061022b565b34610118576040366003190112610118576102bd611165565b6024359060ff82168203610118576102ec916102d891612706565b6040519182916020835260208301906115d3565b0390f35b34610118576003196060368201126101185761030a611165565b602435906001600160401b0392838311610118576101608091843603011261011857604051908101818110858211176104155760405261034c836004016111a7565b8152602483013560208201526044830135604082015260648301358481116101185761037e906004369186010161158c565b60608201526084830135608082015260a483013560a082015260c483013560c08201526103ad60e484016111a7565b60e082015261010483013561010082015261012483013593841161011857610144610401936103e56102ec966004369184010161158c565b61012084015201356101408201526103fb61117b565b91612a69565b604051918291602083526020830190611265565b634e487b7160e01b600052604160045260246000fd5b3461011857606036600319011261011857610444611165565b61044c61114f565b9061045561117b565b61045d611668565b5061046782611bfe565b6040516370a0823160e01b81526001600160a01b0385811660048301529193909290916020908490602490829086165afa9283156107db576000936108ae575b50604051630dd3126d60e21b81526001600160a01b0386811660048301529093906020908590602490829087165afa9384156107db5760009461087a575b50845151604051636eb1769f60e11b81526001600160a01b03888116600483015285811660248301529091169490602081604481895afa9081156107db57600091610848575b5060008212838381031281169084848103139015161761083257879287519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051169b6024604051809e81936370a0823160e01b835260018060a01b031660048301525afa9a8b156107db5760009b6107fe575b5060206040519e8f906105ca826114e0565b815201520360408c015260608b015260808a015260a089015260c088015260e087015261010086015261012085015261014084015260a0840151519261060f8461171c565b9361061d6040519586611550565b80855261062c601f199161171c565b0160005b8181106107e757505060005b60a0860151805160ff83161015610690579061066a8861066361068b9460ff851690611778565b5187612a69565b61067760ff831688611778565b5261068560ff821687611778565b50611bd4565b61063c565b6106e88387898b888a602084015194604085015193602060608701519460808801519460405180809d8194636eb1769f60e11b8352876004840190602090939293604083019460018060a01b03809216845216910152565b03916001600160a01b03165afa9182156107db576000926107a5575b6102ec995060c08701519160018060a01b0316319260e088015194610100890151966101208a0151986101606101408c01519b01519b60206040519e8f9061074b826114c4565b8152015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015260405191829160208352602083019061131c565b91506020893d6020116107d3575b816107c060209383611550565b81010312610118576102ec985191610704565b3d91506107b3565b6040513d6000823e3d90fd5b6020906107f2612688565b82828901015201610630565b909a506020813d60201161082a575b8161081a60209383611550565b81010312610118575199386105b8565b3d915061080d565b634e487b7160e01b600052601160045260246000fd5b90506020813d602011610872575b8161086360209383611550565b8101031261011857518861052b565b3d9150610856565b9093506020813d6020116108a6575b8161089660209383611550565b81010312610118575192866104e5565b3d9150610889565b9092506020813d6020116108da575b816108ca60209383611550565b81010312610118575191856104a7565b3d91506108bd565b346101185760e0366003190112610118576004356001600160a01b03811681036101185761090e61114f565b61091661117b565b916001600160401b03806064351161011857366023606435011215610118576064356004013511610118573660246064356004013560071b606435010111610118576084356001600160a01b03811690036101185760a4356001600160a01b038116900361011857600492602061098b611191565b926109976101c06114a9565b60006101c0526060826101c001526109ad611668565b61020052600061022052604051631f94a27560e31b815295869182906001600160a01b03165afa9384156107db5760009461110b575b506109f36064356004013561171c565b92610a016040519485611550565b60046064350135808552601f1990610a189061171c565b0160005b8181106110f457505060005b60643560040135811061102b575050604051636eb1769f60e11b81526001600160a01b036084358116600483015260a435166024820152602081806044810103816001600160a01b0386165afa9081156107db57600091610ff9575b50610a8d611668565b50610a9782611bfe565b60a0526040516370a0823160e01b81526001600160a01b03608435811660048301526020908290602490829087165afa9081156107db57600091610fc7575b50604051630dd3126d60e21b81526001600160a01b03608435811660048301526020908290602490829088165afa9081156107db57600091610f95575b5060a0515151604051636eb1769f60e11b81526001600160a01b0360843581166004830152868116602483015290911690602081604481855afa80156107db576000608052610f62575b506000821283838103128116908484810313901516176108325760249260a051519260e084015193604081015160608201519160808101519360018060a01b0360a0830151169560c0830151976020808501519460018060a01b039051166040519c8d80926370a0823160e01b825260018060a01b036084351660048301525afa9a8b156107db5760009b610f2e575b50610bfd6040518060c0526114e0565b60c05152608051602060c051015203604060c0510152606060c0510152608060c051015260a060c051015260c08051015260e060c051015261010060c051015261012060c051015261014060c051015260a0805101515193610c5e8561171c565b94610c6c6040519687611550565b808652610c7b601f199161171c565b0160005b818110610f1757505060005b60a080510151805160ff83161015610cd65790610cb6610cd1926106636084359160ff851690611778565b610cc360ff831689611778565b5261068560ff821688611778565b610c8b565b50508585858560a0519260208401519360408101519260446020608060608501519401519260405192838092636eb1769f60e11b825260018060a01b036084351660048301526000602483015260018060a01b03165afa9081156107db57600091610ee5575b5060a0519360c0850151600160a01b6001900360843516319160e08701519361010088015195610120890151976101408a01519961016001519a604051809e610d84826114c4565b60c051825260208201526040015260608d015260808c015260a08b015260c08a015260e08901526101008801526101208701526101408601526101608501526101808401526101a08301526040518093819263b3596f0760e01b8352600160a01b60019003166004830152600160a01b60019003165a92602491602094fa9182156107db57600092610eb1575b5060405193610e1f856114a9565b8452602084019283526040840190815260608401918252604051926020845260a08401945160208501525193608060408501528451809152602060c0850195019060005b818110610e90575050508293610e859151601f1985830301606086015261131c565b905160808301520390f35b909195602061012082610ea66001948b516111bb565b019701929101610e63565b9091506020813d602011610edd575b81610ecd60209383611550565b8101031261011857519084610e11565b3d9150610ec0565b90506020813d602011610f0f575b81610f0060209383611550565b8101031261011857518a610d3c565b3d9150610ef3565b602090610f22612688565b82828a01015201610c7f565b909a506020813d602011610f5a575b81610f4a60209383611550565b8101031261011857519938610bed565b3d9150610f3d565b6020813d602011610f8d575b81610f7b60209383611550565b81010312610118575160805288610b5d565b3d9150610f6e565b90506020813d602011610fbf575b81610fb060209383611550565b81010312610118575187610b13565b3d9150610fa3565b90506020813d602011610ff1575b81610fe260209383611550565b81010312610118575186610ad6565b3d9150610fd5565b90506020813d602011611023575b8161101460209383611550565b81010312610118575185610a84565b3d9150611007565b60806023198260071b60643501360301126101185760405161104c816114a9565b606435600783901b01602401356001600160a01b038116900361011857606435600783901b01602481013582526110cd919061108a906044016111a7565b60208201526110a160648460071b813501016111a7565b60408201526110b960848460071b60643501016111a7565b606082015260a435906084359089866117a2565b6110d78287611778565b526110e28186611778565b50600019811461083257600101610a28565b6020906110ff611733565b82828901015201610a1c565b9093506020813d602011611147575b8161112760209383611550565b8101031261011857516001600160a01b03811681036101185792846109e3565b3d915061111a565b602435906001600160a01b038216820361011857565b600435906001600160a01b038216820361011857565b604435906001600160a01b038216820361011857565b60c435906001600160a01b038216820361011857565b35906001600160a01b038216820361011857565b60018060a01b038082511683528060208301511660208401526040820151166040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106112305750506000910152565b8181015183820152602001611220565b906020916112598151809281855285808601910161121d565b601f01601f1916010190565b9061130360018060a01b03808451168352602084015160208401526040840151604084015260608401516060840152608084015160808401526112b760a08501516101c08060a0870152850190611240565b9060c085015160c085015260e085015160e08501526101008086015190850152610120908186015116908401526101408085015190840152610160808501519084830390850152611240565b9161018080820151908301526101a08091015191015290565b908151916101c080835260018060a01b03908185511690840152602093848101516101e085015260408101516102008501526060810151610220850152608081015161024085015260a081015161026085015260c08101519161138e6101609384610280880152610320870190611240565b9060e0830151166102a0860152610100808301516102c08701526113c661012092838501516101bf19898303016102e08a0152611240565b61014080940151610300880152878601518888015260408601516040880152606086015160608801526080860151608088015260a086015160a088015260c08601519787820360c08901528851908183528083019281808460051b8301019b01936000915b84831061147a5750505050505060e085015160e0870152808501519086015280840151908501528083015190840152808201519083015261018080820151908301526101a08091015191015290565b90919293949b84806114998f93600194601f1987830301885251611265565b9e0193019301919493929061142b565b608081019081106001600160401b0382111761041557604052565b6101c081019081106001600160401b0382111761041557604052565b61016081019081106001600160401b0382111761041557604052565b61012081019081106001600160401b0382111761041557604052565b61018081019081106001600160401b0382111761041557604052565b61010081019081106001600160401b0382111761041557604052565b90601f801991011681019081106001600160401b0382111761041557604052565b6001600160401b03811161041557601f01601f191660200190565b81601f82011215610118578035906115a382611571565b926115b16040519485611550565b8284526020838301011161011857816000926020809301838601378301015290565b9061165a60018060a01b0380845116835260208401516020840152604084015160408401526116116060850151610160806060870152850190611240565b906080850151608085015260a085015160a085015260c085015160c085015260e08501511660e08401526101008085015190840152610120808501519084830390850152611240565b916101408091015191015290565b60405190611675826114c4565b6040516101a083611685836114e0565b600083818095528160208201528160408201528160608201528160808201528160a0820152606060c08201528160e0820152816101008181840152816101209160608386015261014094828682015287528160208801528160408801528160608801528160808801528160a0880152606060c08801528160e088015286015284015282015282610160820152826101808201520152565b6001600160401b0381116104155760051b60200190565b60405190611740826114fc565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b805182101561178c5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b93919092936117af611733565b508151602080840151606085015160409586018051965163c44b11f760e01b81526001600160a01b0397881660048201529487169990979287169694959094918216939186916024918391165afa9384156107db57600094611a61575b50604051636eb1769f60e11b81526001600160a01b038481166004830152919091166024820152906020826044818b5afa9182156107db57600092611a2d575b506040516370a0823160e01b81526001600160a01b0390931660048401819052946020846024818c5afa9384156107db576000946119f9575b506040516370a0823160e01b81526004810187905294602086602481855afa9586156107db576000966119c5575b50604051966370a0823160e01b88526004880152602087602481865afa9687156107db57600097611990575b5051965160405163b3596f0760e01b81526001600160a01b039182166004820152986020918a916024918391165afa9788156107db57600098611959575b506040519861192b8a6114fc565b8952602089015260408801526060870152608086015260a085015260c084015260e083015261010082015290565b90976020823d602011611988575b8161197460209383611550565b81010312611985575051963861191d565b80fd5b3d9150611967565b90966020823d6020116119bd575b816119ab60209383611550565b810103126119855750519560206118df565b3d915061199e565b90956020823d6020116119f1575b816119e060209383611550565b8101031261198557505194386118b3565b3d91506119d3565b90936020823d602011611a25575b81611a1460209383611550565b810103126119855750519238611885565b3d9150611a07565b90916020823d602011611a59575b81611a4860209383611550565b81010312611985575051903861184c565b3d9150611a3b565b6020949194813d602011611ac7575b81611a7d60209383611550565b81010312611ac3576040519160208301908382106001600160401b03831117611aaf575060405251815292602061180c565b634e487b7160e01b81526041600452602490fd5b5080fd5b3d9150611a70565b519060ff8216820361011857565b51906001600160a01b038216820361011857565b51906001600160401b038216820361011857565b51906cffffffffffffffffffffffffff8216820361011857565b602081830312610118578051906001600160401b038211610118570181601f82011215610118578051611b5181611571565b92611b5f6040519485611550565b8184526020828401011161011857611b7d916020808501910161121d565b90565b60405190611b8d826114e0565b816101406000918281528260208201528260408201526060808201528260808201528260a08201528260c08201528260e08201528261010082015260606101208201520152565b60ff1660ff81146108325760010190565b6301e13380908060001904821181151516610832570290565b60e0526000610160604051611c1281611518565b604051611c1e81611534565b838152836020820152836040820152836060820152606060808201528360a08201528360c0820152606060e08201528152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e0820152826101008201528261012082015282610140820152015260405163a46fe83b60e01b815260208160048160018060a01b0360e051165afa80156107db5760006101205261264c575b506040519063c55dae6360e01b825260208260048160018060a01b0360e051165afa9182156107db57600092612610575b506040519063e7dad6bd60e01b825260208260048160018060a01b0360e051165afa9182156107db576000926125d4575b506040519163300e6beb60e01b835260208360048160018060a01b0360e051165afa9283156107db576000936125a0575b506040516355d3f8af60e11b815260e051602090829060049082906001600160a01b03165afa9081156107db5760009161256e575b506040519363189bb2f160e01b855260208560048160018060a01b0360e051165afa9485156107db5760009561253a575b5060405190634f54cd2d60e11b825260208260048160018060a01b0360e051165afa9182156107db57600092612506575b50604051936349b270c560e11b855260208560048160018060a01b0360e051165afa9485156107db576000956124d2575b5060405197637eb7113160e01b895260208960048160018060a01b0360e051165afa9889156107db5760009961249e575b50604051926318160ddd60e01b845260208460048160018060a01b0360e051165afa9384156107db5760009461246a575b506040519163020a17bd60e61b835260208360048160018060a01b0360e051165afa9283156107db57600093612436575b506040519363b9f0baf760e01b85526101008560048160018060a01b0360e051165afa9485156107db5760009561236a575b50604051634fd41dad60e11b8152600481018d905260e051602090829060249082906001600160a01b03165afa80156107db5760006101005261232e575b506040519b63d955759d60e01b8d5260048d015260208c60248160018060a01b0360e051165afa9b8c156107db5760009c6122f2575b506040516395d89b4160e01b8152926000846004816001600160a01b0387165afa9384156107db576000946122d5575b5060405163313ce56760e01b81526020816004816001600160a01b0388165afa80156107db576000610180526122a1575b506040516306fdde0360e01b8152906000826004816001600160a01b0388165afa9182156107db5760009261227c575b506040516341976e0960e01b81526001600160a01b03848116600483015260e05191959160209187916024918391165afa9485156107db57600095612248575b506040516101408181526370a0823160e01b90915260e05181516001600160a01b039182166004909101529051602091602490829085165afa8061016052156107db5760009061016051612210575b612086604051806101a052611534565b60018060a01b03166101a0515260206101a05101526101805160406101a051015260606101a051015260806101a051015260018060a01b031660a06101a051015260c06101a051015260e06101a05101526120e660ff610120511661171c565b976120f4604051998a611550565b60ff61012051168952601f1961210f60ff610120511661171c565b0160005b8181106121f857505060005b60ff610120511660ff82161015612160578061214061215b9260e051612706565b61214d60ff83168d611778565b5261068560ff82168c611778565b61211f565b5091939597909294969861218a6001600160401b03612183816101005116611be5565b9216611be5565b926cffffffffffffffffffffffffff60808160a08901511697015116976040519a6121b48c611518565b6101a0518c5260208c015260408b015260608a0152608089015260a088015260c087015260e086015261010085015261012084015261014083015261016082015290565b808b60208093612206611b80565b9201015201612113565b905060203d602011612241575b61222a8161014051611550565b602061014051809281010312610118575190612076565b503d61221d565b9094506020813d602011612274575b8161226460209383611550565b8101031261011857519338612027565b3d9150612257565b61229a9192503d806000833e6122928183611550565b810190611b1f565b9038611fe7565b6020813d6020116122cd575b816122ba60209383611550565b8101031261011857516101805238611fb7565b3d91506122ad565b6122eb9194503d806000833e6122928183611550565b9238611f86565b909b506020813d602011612326575b8161230e60209383611550565b810103126101185761231f90611af1565b9a38611f56565b3d9150612301565b6020813d602011612362575b8161234760209383611550565b810103126101185761235890611af1565b6101005238611f20565b3d915061233a565b909450610100813d6101001161242e575b816123896101009383611550565b81010312610118576040519061239e82611534565b6123a781611af1565b82526123b560208201611af1565b60208301526123c660408201611af1565b60408301526123d760608201611af1565b60608301526123e860808201611b05565b60808301526123f960a08201611b05565b60a083015260c081015164ffffffffff811681036101185760c08301526124229060e001611acf565b60e08201529338611ee2565b3d915061237b565b9092506020813d602011612462575b8161245260209383611550565b8101031261011857519138611eb0565b3d9150612445565b9093506020813d602011612496575b8161248660209383611550565b8101031261011857519238611e7f565b3d9150612479565b9098506020813d6020116124ca575b816124ba60209383611550565b8101031261011857519738611e4e565b3d91506124ad565b9094506020813d6020116124fe575b816124ee60209383611550565b8101031261011857519338611e1d565b3d91506124e1565b9091506020813d602011612532575b8161252260209383611550565b8101031261011857519038611dec565b3d9150612515565b9094506020813d602011612566575b8161255660209383611550565b8101031261011857519338611dbb565b3d9150612549565b90506020813d602011612598575b8161258960209383611550565b81010312610118575138611d8a565b3d915061257c565b9092506020813d6020116125cc575b816125bc60209383611550565b8101031261011857519138611d55565b3d91506125af565b9091506020813d602011612608575b816125f060209383611550565b810103126101185761260190611add565b9038611d24565b3d91506125e3565b9091506020813d602011612644575b8161262c60209383611550565b810103126101185761263d90611add565b9038611cf3565b3d915061261f565b6020813d602011612680575b8161266560209383611550565b810103126101185761267690611acf565b6101205238611cc2565b3d9150612658565b60405190612695826114c4565b816101a0600091828152826020820152826040820152826060820152826080820152606060a08201528260c08201528260e08201528261010082015282610120820152826101408201526060610160820152826101808201520152565b51906001600160801b038216820361011857565b9061270f611b80565b506040805163c8c7fe6b60e01b815260ff9092166004830152916001600160a01b0390811691906101008083602481875afa928315612912576000936129b0575b506020928381019383855116966001600160401b039060048260808601511691848b82519384809263313ce56760e01b82525afa9182156129a557600092612975575b506004928460a0880151169460c0880151169560008a8c51168451968780926306fdde0360e01b82525afa9485156128e857908c9796959493929160009561295a575b50828901818c82511660248651809c81936341976e0960e01b835260048301525afa98891561294f57908c9160009a61291d575b5051169860e001516001600160801b03169a808d51169c8451809e81906395d89b4160e01b82525a92600491600094fa9d8e156129125760009e6128f3575b505184516359e017bd60e01b8152911660048201529c81908e90815a91602492fa9c8d156128e85760009d6128b9575b5082519d8e612887816114e0565b528d01528b015260608a0152608089015260a088015260c087015260e086015284015261012083015261014082015290565b909c8d82813d83116128e1575b6128d08183611550565b810103126119855750519b38612879565b503d6128c6565b83513d6000823e3d90fd5b61290a908493929f3d8091833e6122928183611550565b9d9091612849565b85513d6000823e3d90fd5b9150988282813d8311612948575b6129358183611550565b8101031261198557508b9051983861280a565b503d61292b565b84513d6000823e3d90fd5b61296e91953d8091833e6122928183611550565b93386127d6565b90918582813d831161299e575b61298c8183611550565b81010312611985575051906004612793565b503d612982565b50513d6000823e3d90fd5b90928382813d8311612a62575b6129c78183611550565b810103126119855750612a5660e08651926129e184611534565b6129ea81611acf565b84526129f860208201611add565b6020850152612a08888201611add565b88850152612a1860608201611af1565b6060850152612a2960808201611af1565b6080850152612a3a60a08201611af1565b60a0850152612a4b60c08201611af1565b60c0850152016126f2565b60e08201529138612750565b503d6129bd565b9190612a73612688565b508051604051636eb1769f60e11b81526001600160a01b038481166004830152948516602482018190529490911693602082604481885afa9182156107db57600092612c50575b508251604051632e12a4f760e11b81526001600160a01b038681166004830152909116602482015290602090829060449082905afa9081156107db57600091612c16575b506020830151604080850151608086015160a0870151606088015160c089015160e08a01516101008b01516101208c01516101408d01519c5198516370a0823160e01b81526001600160a01b039e8f1660048201529d909b919a928116999398959794958e918291165a92602491602094fa9c8d156107db5760009d612be2575b50604051809e612b8e826114c4565b8152602001526001600160801b031660408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a082015290565b909c6020823d602011612c0e575b81612bfd60209383611550565b810103126119855750519b38612b7f565b3d9150612bf0565b906020823d602011612c48575b81612c3060209383611550565b810103126119855750612c42906126f2565b38612afe565b3d9150612c23565b90916020823d602011612c7d575b81612c6b60209383611550565b81010312611985575051906020612aba565b3d9150612c5e56fea26469706673582212207418e97630c892b70737bf81c8d75f5fac482aeeb82a7a224915fe8f67b178e764736f6c63430008100033", + "sourceMap": "1061:2475:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2475:0;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;-1:-1:-1;;1061:2475:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2475:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;1061:2475:0;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;1061:2475:0;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;8385:12:1;;;:::i;:::-;1061:2475:0;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1061:2475:0;;;;8434:24:1;;1061:2475:0;;;;;;;8434:24:1;;1061:2475:0;;;;;;;;8434:24:1;;;;;;;1061:2475:0;8434:24:1;;;1061:2475:0;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1061:2475:0;;;;8494:30:1;;1061:2475:0;;;;8434:24:1;;1061:2475:0;;;;;;;;8494:30:1;;;;;;;1061:2475:0;8494:30:1;;;1061:2475:0;-1:-1:-1;8621:18:1;;1061:2475:0;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1061:2475:0;;;;8668:70:1;;1061:2475:0;;;;;;;;;;;;;8434:24:1;1061:2475:0;;;;8668:70:1;;;;;;;1061:2475:0;8668:70:1;;;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;;;;:25;1061:2475:0;8828:25:1;;;8871:27;1061:2475:0;8871:27:1;;1061:2475:0;;8917:28:1;;1061:2475:0;8959:23:1;;;;;1061:2475:0;;;;;;;9001:28:1;;1061:2475:0;;9044:24:1;;;;1061:2475:0;9092:33:1;8434:24;9092:33;;;1061:2475:0;;;;;;;;;;;;;;;;;;;;;9148:54:1;;1061:2475:0;;;;;;;9148:54:1;;1061:2475:0;9148:54:1;;;;;;;1061:2475:0;9148:54:1;;;1061:2475:0;;8434:24:1;1061:2475:0;;;;;;;;:::i;:::-;;;8576:633:1;1061:2475:0;;;8576:633:1;;1061:2475:0;;8576:633:1;;1061:2475:0;8959:23:1;8576:633;;1061:2475:0;;8576:633:1;;1061:2475:0;9044:24:1;8576:633;;1061:2475:0;;8576:633:1;;1061:2475:0;8576:633:1;;;1061:2475:0;8576:633:1;;;1061:2475:0;8576:633:1;;;1061:2475:0;;9311:25:1;;;1061:2475:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1061:2475:0;9411:3:1;1061:2475:0;9311:25:1;;9377;1061:2475:0;;;;;9373:36:1;;;;1061:2475:0;9436:71:1;1061:2475:0;9469:28:1;9411:3;1061:2475:0;;;;9469:28:1;;:::i;:::-;;9436:71;;:::i;:::-;9424:83;1061:2475:0;;;9424:83:1;;:::i;:::-;;;1061:2475:0;;;9424:83:1;;:::i;:::-;;9411:3;:::i;:::-;9360:11;;9373:36;9845:32;9373:36;;;;;;8434:24;9619:26;;1061:2475:0;9680:32:1;1061:2475:0;9680:32:1;;1061:2475:0;9747:32:1;8434:24;1061:2475:0;9747:32:1;;1061:2475:0;9800:18:1;8959:23;9800:18;;1061:2475:0;;;;;;;;;;;;9845:32:1;;;1061:2475:0;9845:32:1;;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;9845:32:1;;;-1:-1:-1;;;;;1061:2475:0;9845:32:1;;;;;;;1061:2475:0;9845:32:1;;;9355:159;1061:2475:0;9930:16:1;;9044:24;9930:16;;1061:2475:0;;;;;;;;9982:15:1;10020:20;1061:2475:0;10020:20:1;;1061:2475:0;10072:29:1;8576:633;10072:29;;1061:2475:0;10124:20:1;8576:633;10124:20;;1061:2475:0;10176:29:1;1061:2475:0;8576:633:1;10176:29;;1061:2475:0;10235:27:1;;1061:2475:0;;8434:24:1;1061:2475:0;;;;;;;;:::i;:::-;;;9533:738:1;1061:2475:0;;9533:738:1;;1061:2475:0;;9533:738:1;;1061:2475:0;8959:23:1;9533:738;;1061:2475:0;;9533:738:1;;1061:2475:0;9044:24:1;9533:738;;1061:2475:0;;9533:738:1;;1061:2475:0;8576:633:1;9533:738;;1061:2475:0;8576:633:1;9533:738;;1061:2475:0;8576:633:1;9533:738;;1061:2475:0;;9533:738:1;;1061:2475:0;9533:738:1;;;1061:2475:0;9533:738:1;;;1061:2475:0;;;;;;8434:24:1;1061:2475:0;;8434:24:1;1061:2475:0;;;;:::i;9845:32:1:-;;;8434:24;9845:32;;8434:24;9845:32;;;;;;8434:24;9845:32;;;:::i;:::-;;;1061:2475:0;;;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;;1061:2475:0;;;;;;;;;;8434:24:1;1061:2475:0;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;8434:24;9148:54;;8434:24;9148:54;;;;;;8434:24;9148:54;;;:::i;:::-;;;1061:2475:0;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;1061:2475:0;;;;;;;;;;;;8668:70:1;;;8434:24;8668:70;;8434:24;8668:70;;;;;;8434:24;8668:70;;;:::i;:::-;;;1061:2475:0;;;;;8668:70:1;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;;8434:24;8494:30;;8434:24;8494:30;;;;;;8434:24;8494:30;;;:::i;:::-;;;1061:2475:0;;;;;8494:30:1;;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2475:0;;;;;8434:24:1;;;;;;;-1:-1:-1;8434:24:1;;1061:2475:0;;;;;;-1:-1:-1;;1061:2475:0;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;:::i;:::-;;;:::i;:::-;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;1955:25:0;;1061:2475;;;;;-1:-1:-1;;;;;1061:2475:0;1955:25;;;;;;;1061:2475;1955:25;;;1061:2475;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1061:2475:0;;;;:::i;:::-;;;;;;;;;2102:10;;1061:2475;2114:15;1061:2475;;;;;2114:15;;;;-1:-1:-1;;1061:2475:0;;-1:-1:-1;;;2286:33:0;;-1:-1:-1;;;;;1061:2475:0;;;;;2286:33;;1061:2475;;;;;;;;;;;;;;2286:33;1061:2475;-1:-1:-1;;;;;1061:2475:0;;2286:33;;;;;;;1061:2475;2286:33;;;2097:129;1061:2475;;;:::i;:::-;;8385:12:1;;;:::i;:::-;1061:2475:0;8385:12:1;1061:2475:0;;-1:-1:-1;;;8434:24:1;;-1:-1:-1;;;;;1061:2475:0;;;;;8434:24:1;;1061:2475:0;;;;;;;;;;;8434:24:1;;;;;;;1061:2475:0;8434:24:1;;;2097:129:0;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;8494:30:1;;-1:-1:-1;;;;;1061:2475:0;;;;;8494:30:1;;1061:2475:0;;;;;;;;;;;8494:30:1;;;;;;;1061:2475:0;8494:30:1;;;2097:129:0;-1:-1:-1;1061:2475:0;8621:18:1;;1061:2475:0;;;-1:-1:-1;;;8668:70:1;;-1:-1:-1;;;;;1061:2475:0;;;;;8668:70:1;;1061:2475:0;;;;;;;;;;;;;;;;;8668:70:1;;;;;;1061:2475:0;;8668:70:1;;;2097:129:0;1061:2475;;;;;;;;;;;;;;;;;;;;;;;;8828:18:1;1061:2475:0;8828:18:1;;:25;1061:2475:0;8828:25:1;;;8871:27;1061:2475:0;8871:27:1;;1061:2475:0;;8917:28:1;;1061:2475:0;8959:23:1;1061:2475:0;8959:23:1;;;1061:2475:0;;;;;;;9001:28:1;;1061:2475:0;;9044:24:1;;;;1061:2475:0;9092:33:1;1061:2475:0;9092:33:1;;;1061:2475:0;;;;;;;;;;;;;;;;;;;9148:54:1;;1061:2475:0;;;;;;;;;9148:54:1;;1061:2475:0;9148:54:1;;;;;;;1061:2475:0;9148:54:1;;;2097:129:0;1061:2475;;;;;9044:24:1;1061:2475:0;;:::i;:::-;9044:24:1;1061:2475:0;;;;;9044:24:1;8576:633;;1061:2475:0;;;9044:24:1;8576:633;;1061:2475:0;;9044:24:1;8576:633;;1061:2475:0;;9044:24:1;8576:633;;1061:2475:0;;9044:24:1;8576:633;;1061:2475:0;9044:24:1;8576:633;;;1061:2475:0;;9044:24:1;8576:633;;1061:2475:0;8576:633:1;9044:24;8576:633;;1061:2475:0;8576:633:1;9044:24;8576:633;;1061:2475:0;8576:633:1;9044:24;8576:633;;1061:2475:0;;9311:25:1;;;;1061:2475:0;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;9360:11:1;;1061:2475:0;9411:3:1;1061:2475:0;9311:25:1;;;9377;1061:2475:0;;;;;9373:36:1;;;;1061:2475:0;9436:71:1;9411:3;1061:2475:0;9469:28:1;1061:2475:0;;;;;;9469:28:1;;:::i;9436:71::-;9424:83;1061:2475:0;;;9424:83:1;;:::i;:::-;;;1061:2475:0;;;9424:83:1;;:::i;9411:3::-;9360:11;;9373:36;;;;;;;1061:2475:0;9619:26:1;;1061:2475:0;9619:26:1;;1061:2475:0;9680:32:1;1061:2475:0;9680:32:1;;1061:2475:0;9747:32:1;1061:2475:0;;;;9747:32:1;;1061:2475:0;9800:18:1;;1061:2475:0;;;;;;;;;;;9845:32:1;;1061:2475:0;;;;;;;;;9845:32:1;;1061:2475:0;;;;;;;;;;;;9845:32:1;;;;;;;1061:2475:0;9845:32:1;;;9355:159;9930:16;1061:2475:0;9930:16:1;;9044:24;9930:16;;1061:2475:0;;;;;;;;;;9982:15:1;10020:20;1061:2475:0;10020:20:1;;1061:2475:0;10072:29:1;8576:633;10072:29;;1061:2475:0;10124:20:1;8576:633;10124:20;;1061:2475:0;10176:29:1;8576:633;10176:29;;1061:2475:0;10235:27:1;1061:2475:0;10235:27:1;1061:2475:0;;;;;;;;;:::i;:::-;9044:24:1;1061:2475:0;;;;9533:738:1;;1061:2475:0;;9533:738:1;1061:2475:0;;9533:738:1;;1061:2475:0;;9533:738:1;;1061:2475:0;;9533:738:1;;1061:2475:0;9044:24:1;9533:738;;1061:2475:0;;9533:738:1;;1061:2475:0;8576:633:1;9533:738;;1061:2475:0;8576:633:1;9533:738;;1061:2475:0;8576:633:1;9533:738;;1061:2475:0;;9533:738:1;;1061:2475:0;9533:738:1;;;1061:2475:0;9533:738:1;;;1061:2475:0;;;;;;;;;;2435:38;;1061:2475;;;;;;;;2435:38;;1061:2475;;;;;;;;2435:38;;1061:2475;2435:38;1061:2475;2435:38;;;;;;;1061:2475;2435:38;;;9355:159:1;1061:2475:0;;;;;;;:::i;:::-;;;;2245:237;;1061:2475;;;;2245:237;;1061:2475;;;;2245:237;;1061:2475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9044:24:1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;8576:633:1;1061:2475:0;;;;;;;:::i;:::-;;;;;;;;;2435:38;;;;1061:2475;2435:38;;1061:2475;2435:38;;;;;;1061:2475;2435:38;;;:::i;:::-;;;1061:2475;;;;;2435:38;;;;;;;-1:-1:-1;2435:38:0;;9845:32:1;;;1061:2475:0;9845:32:1;;1061:2475:0;9845:32:1;;;;;;1061:2475:0;9845:32:1;;;:::i;:::-;;;1061:2475:0;;;;;9845:32:1;;;;;;-1:-1:-1;9845:32:1;;1061:2475:0;;;;;:::i;:::-;;;;;;;;;;9148:54:1;;;;1061:2475:0;9148:54:1;;1061:2475:0;9148:54:1;;;;;;1061:2475:0;9148:54:1;;;:::i;:::-;;;1061:2475:0;;;;;9148:54:1;;;;;;;-1:-1:-1;9148:54:1;;8668:70;1061:2475:0;8668:70:1;;1061:2475:0;8668:70:1;;;;;;1061:2475:0;8668:70:1;;;:::i;:::-;;;1061:2475:0;;;;;;8668:70:1;;;;;;;-1:-1:-1;8668:70:1;;8494:30;;;1061:2475:0;8494:30:1;;1061:2475:0;8494:30:1;;;;;;1061:2475:0;8494:30:1;;;:::i;:::-;;;1061:2475:0;;;;;8494:30:1;;;;;;-1:-1:-1;8494:30:1;;8434:24;;;1061:2475:0;8434:24:1;;1061:2475:0;8434:24:1;;;;;;1061:2475:0;8434:24:1;;;:::i;:::-;;;1061:2475:0;;;;;8434:24:1;;;;;;-1:-1:-1;8434:24:1;;2286:33:0;;;1061:2475;2286:33;;1061:2475;2286:33;;;;;;1061:2475;2286:33;;;:::i;:::-;;;1061:2475;;;;;2286:33;;;;;;-1:-1:-1;2286:33:0;;2131:3;1061:2475;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;;;;;;;;;;;2156:63;;1061:2475;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2156:63;;;;:::i;:::-;2144:75;;;;:::i;:::-;;;;;;:::i;:::-;-1:-1:-1;;;1061:2475:0;;;;;;2102:10;;1061:2475;;;;;:::i;:::-;;;;;;;;;;1955:25;;;;1061:2475;1955:25;;1061:2475;1955:25;;;;;;1061:2475;1955:25;;;:::i;:::-;;;1061:2475;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;1955:25;;;;;;;-1:-1:-1;1955:25:0;;1061:2475;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;1061:2475:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1061:2475:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2475:0;;;;;;-1:-1:-1;;1061:2475:0;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1061:2475:0;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2491:1043;;;;;;1061:2475;;:::i;:::-;-1:-1:-1;1061:2475:0;;2792:29;;;;1061:2475;2857:31;;;1061:2475;2976:24;;;;1061:2475;;;;-1:-1:-1;;;2954:47:0;;-1:-1:-1;;;;;1061:2475:0;;;2954:47;;;1061:2475;;;;;2976:24;;1061:2475;;;;;;;;;;;;2792:29;1061:2475;;;;;;;2954:47;;;;;;;-1:-1:-1;2954:47:0;;;2491:1043;-1:-1:-1;2976:24:0;1061:2475;-1:-1:-1;;;3196:34:0;;-1:-1:-1;;;;;1061:2475:0;;;2954:47;3196:34;;1061:2475;;;;;;;;;;2792:29;1061:2475;;;3196:34;;;;;;;;-1:-1:-1;3196:34:0;;;2491:1043;-1:-1:-1;2976:24:0;1061:2475;-1:-1:-1;;;3249:25:0;;-1:-1:-1;;;;;1061:2475:0;;;2954:47;3249:25;;1061:2475;;;;2792:29;1061:2475;;;3249:25;;;;;;;;-1:-1:-1;3249:25:0;;;2491:1043;-1:-1:-1;2976:24:0;1061:2475;-1:-1:-1;;;3303:34:0;;2954:47;3303:34;;1061:2475;;;;2792:29;1061:2475;;;3303:34;;;;;;;;-1:-1:-1;3303:34:0;;;2491:1043;1061:2475;2976:24;1061:2475;;;;;3368:36;;2954:47;3368:36;;1061:2475;2792:29;3368:36;1061:2475;3368:36;;;;;;;;;-1:-1:-1;3368:36:0;;;2491:1043;-1:-1:-1;1061:2475:0;;;2976:24;1061:2475;-1:-1:-1;;;3469:51:0;;-1:-1:-1;;;;;1061:2475:0;;;2954:47;3469:51;;1061:2475;;2792:29;;1061:2475;;;;;;;3469:51;;;;;;;-1:-1:-1;3469:51:0;;;2491:1043;1061:2475;2976:24;1061:2475;;;;;:::i;:::-;;;2792:29;3021:508;;1061:2475;2976:24;3021:508;;1061:2475;2857:31;3021:508;;1061:2475;3021:508;;;1061:2475;;3021:508;;1061:2475;3021:508;;;1061:2475;;3021:508;;1061:2475;3021:508;;;1061:2475;2491:1043;:::o;3469:51::-;;;2792:29;3469:51;;2792:29;3469:51;;;;;;2792:29;3469:51;;;:::i;:::-;;;1061:2475;;;;;;3469:51;;;;1061:2475;;;3469:51;;;-1:-1:-1;3469:51:0;;3368:36;;;2792:29;3368:36;;2792:29;3368:36;;;;;;2792:29;3368:36;;;:::i;:::-;;;1061:2475;;;;-1:-1:-1;1061:2475:0;;2792:29;3368:36;;;;;-1:-1:-1;3368:36:0;;3303:34;;;2792:29;3303:34;;2792:29;3303:34;;;;;;2792:29;3303:34;;;:::i;:::-;;;1061:2475;;;;;;3303:34;;;;;;;-1:-1:-1;3303:34:0;;3249:25;;;2792:29;3249:25;;2792:29;3249:25;;;;;;2792:29;3249:25;;;:::i;:::-;;;1061:2475;;;;;;3249:25;;;;;;;-1:-1:-1;3249:25:0;;3196:34;;;2792:29;3196:34;;2792:29;3196:34;;;;;;2792:29;3196:34;;;:::i;:::-;;;1061:2475;;;;;;3196:34;;;;;;;-1:-1:-1;3196:34:0;;2954:47;2792:29;2954:47;;;;;2792:29;2954:47;;;;;;2792:29;2954:47;;;:::i;:::-;;;1061:2475;;;;2976:24;1061:2475;;2792:29;1061:2475;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;-1:-1:-1;2976:24:0;1061:2475;;;;;2792:29;2954:47;;1061:2475;-1:-1:-1;;;1061:2475:0;;;2954:47;1061:2475;;;;;;;;2954:47;;;-1:-1:-1;2954:47:0;;1061:2475;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;4218:18:1:-;;1061:2475:0;;;;4218:18:1;;;;;;;;;;;:::o;6179:2007::-;;;-1:-1:-1;1061:2475:0;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;6270:17:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6270:17:1;;;;;;-1:-1:-1;1061:2475:0;6270:17:1;;;6179:2007;1061:2475:0;;;;;;;6313:17:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;;6179:2007;1061:2475:0;;;;;;;6365:26:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;;6179:2007;1061:2475:0;;;;;;;6414:21:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;;6179:2007;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;6467:26:1;;6179:2007;6270:15;1061:2475:0;;;;6270:17:1;;1061:2475:0;;-1:-1:-1;;;;;1061:2475:0;6467:26:1;;;;;;;-1:-1:-1;6467:26:1;;;6179:2007;1061:2475:0;;;;;;;6530:31:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;;6179:2007;1061:2475:0;;;;;;;6598:31:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;;6179:2007;1061:2475:0;;;;;;;6660:25:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;;6179:2007;1061:2475:0;;;;;;;6710:22:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;;6179:2007;1061:2475:0;;;;;;;6757:19:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;;6179:2007;1061:2475:0;;;;;;;6801:19:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;;6179:2007;1061:2475:0;;;;;;;6865:19:1;;1061:2475:0;;6270:17:1;1061:2475:0;;;;;;6179:2007:1;6270:15;1061:2475:0;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;;6179:2007;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;6917:32:1;;6270:17;6917:32;;1061:2475:0;;;6179:2007:1;6270:15;1061:2475:0;;;;;;;;-1:-1:-1;;;;;1061:2475:0;6917:32:1;;;;;;-1:-1:-1;1061:2475:0;6917:32:1;;;6179:2007;1061:2475:0;;;;;;;6982:32:1;;6270:17;6982:32;;1061:2475:0;;;;;;;;;;6179:2007:1;6270:15;1061:2475:0;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;;6179:2007;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;7104:25:1;;1061:2475:0;-1:-1:-1;1061:2475:0;6270:17:1;1061:2475:0;-1:-1:-1;;;;;1061:2475:0;;7104:25:1;;;;;;;-1:-1:-1;7104:25:1;;;6179:2007;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;7147:27:1;;1061:2475:0;;6270:17:1;1061:2475:0;-1:-1:-1;;;;;1061:2475:0;;7147:27:1;;;;;;-1:-1:-1;7147:27:1;;;;6179:2007;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;7216:23:1;;1061:2475:0;-1:-1:-1;1061:2475:0;6270:17:1;1061:2475:0;-1:-1:-1;;;;;1061:2475:0;;7216:23:1;;;;;;;-1:-1:-1;7216:23:1;;;6179:2007;-1:-1:-1;1061:2475:0;;-1:-1:-1;;;7291:34:1;;-1:-1:-1;;;;;1061:2475:0;;;6270:17:1;7291:34;;1061:2475:0;;6270:15:1;1061:2475:0;;;;;;;;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;;6179:2007;-1:-1:-1;1061:2475:0;;;7349:42:1;;;-1:-1:-1;;;7349:42:1;;;1061:2475:0;6270:15:1;7349:42;;-1:-1:-1;;;;;1061:2475:0;;;6270:17:1;7349:42;;;1061:2475:0;7349:42:1;;1061:2475:0;;;;7349:42:1;;1061:2475:0;;7349:42:1;;;1061:2475:0;7349:42:1;;;;-1:-1:-1;7349:42:1;1061:2475:0;7349:42:1;;;6179:2007;1061:2475:0;;;;;;;:::i;:::-;;;;;;;;;;;;7050:348:1;;1061:2475:0;7147:27:1;1061:2475:0;;;7050:348:1;;1061:2475:0;;;7050:348:1;;1061:2475:0;;;7050:348:1;;1061:2475:0;;;;;;;;;7050:348:1;;1061:2475:0;;;7050:348:1;;1061:2475:0;6179:2007:1;1061:2475:0;7050:348:1;;1061:2475:0;;;;6253:34:1;1061:2475:0;;:::i;:::-;;;;;;;;:::i;:::-;;;6253:34:1;1061:2475:0;;;;;;;;6253:34:1;1061:2475:0;;:::i;:::-;;-1:-1:-1;1061:2475:0;;;;;;7482:11:1;;-1:-1:-1;7510:3:1;1061:2475:0;;6253:34:1;1061:2475:0;;;;7495:13:1;;;;7535:24;;7510:3;7535:24;6179:2007;7535:24;;:::i;:::-;7523:36;1061:2475:0;;;7523:36:1;;:::i;:::-;;;1061:2475:0;;;7523:36:1;;:::i;7510:3::-;7482:11;;7495:13;;;;;;;;;;;7900:38;-1:-1:-1;;;;;7809:38:1;6890:59;1061:2475:0;6890:59:1;1061:2475:0;7809:38:1;:::i;:::-;1061:2475:0;;7900:38:1;:::i;:::-;8004:27;1061:2475:0;;8004:27:1;1061:2475:0;8004:27:1;;4218:18;1061:2475:0;8097:27:1;;4218:18;1061:2475:0;;;;;;;;:::i;:::-;;;;;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;6179:2007:1;7585:596;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;;7585:596:1;;1061:2475:0;6179:2007:1;:::o;1061:2475:0:-;;;;;;;;:::i;:::-;;;;;;;;7349:42:1;;;1061:2475:0;7349:42:1;1061:2475:0;7349:42:1;;;;;;1061:2475:0;7349:42:1;;:::i;:::-;1061:2475:0;;;7349:42:1;;;;1061:2475:0;;;;;7349:42:1;;;;;;;;7291:34;;;;1061:2475:0;7291:34:1;;1061:2475:0;7291:34:1;;;;;;1061:2475:0;7291:34:1;;;:::i;:::-;;;1061:2475:0;;;;;7291:34:1;;;;;;;-1:-1:-1;7291:34:1;;7216:23;;;;;;;-1:-1:-1;7216:23:1;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;7147:27;1061:2475:0;7147:27:1;;1061:2475:0;7147:27:1;;;;;;1061:2475:0;7147:27:1;;;:::i;:::-;;;1061:2475:0;;;;;7147:27:1;;;;;;;;-1:-1:-1;7147:27:1;;7104:25;;;;;;;-1:-1:-1;7104:25:1;;;;;;:::i;:::-;;;;;6982:32;;;;1061:2475:0;6982:32:1;;1061:2475:0;6982:32:1;;;;;;1061:2475:0;6982:32:1;;;:::i;:::-;;;1061:2475:0;;;;;;;:::i;:::-;6982:32:1;;;;;;;-1:-1:-1;6982:32:1;;6917;1061:2475:0;6917:32:1;;1061:2475:0;6917:32:1;;;;;;1061:2475:0;6917:32:1;;;:::i;:::-;;;1061:2475:0;;;;;;;:::i;:::-;;6917:32:1;;;;;;;-1:-1:-1;6917:32:1;;6865:19;;;;1061:2475:0;6865:19:1;;1061:2475:0;6865:19:1;;;;;;1061:2475:0;6865:19:1;;;:::i;:::-;;;1061:2475:0;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6179:2007:1;1061:2475:0;;:::i;:::-;6179:2007:1;1061:2475:0;;;6865:19:1;;;;;;;-1:-1:-1;6865:19:1;;6801;;;;1061:2475:0;6801:19:1;;1061:2475:0;6801:19:1;;;;;;1061:2475:0;6801:19:1;;;:::i;:::-;;;1061:2475:0;;;;;6801:19:1;;;;;;;-1:-1:-1;6801:19:1;;6757;;;;1061:2475:0;6757:19:1;;1061:2475:0;6757:19:1;;;;;;1061:2475:0;6757:19:1;;;:::i;:::-;;;1061:2475:0;;;;;6757:19:1;;;;;;;-1:-1:-1;6757:19:1;;6710:22;;;;1061:2475:0;6710:22:1;;1061:2475:0;6710:22:1;;;;;;1061:2475:0;6710:22:1;;;:::i;:::-;;;1061:2475:0;;;;;6710:22:1;;;;;;;-1:-1:-1;6710:22:1;;6660:25;;;;1061:2475:0;6660:25:1;;1061:2475:0;6660:25:1;;;;;;1061:2475:0;6660:25:1;;;:::i;:::-;;;1061:2475:0;;;;;6660:25:1;;;;;;;-1:-1:-1;6660:25:1;;6598:31;;;;1061:2475:0;6598:31:1;;1061:2475:0;6598:31:1;;;;;;1061:2475:0;6598:31:1;;;:::i;:::-;;;1061:2475:0;;;;;6598:31:1;;;;;;;-1:-1:-1;6598:31:1;;6530;;;;1061:2475:0;6530:31:1;;1061:2475:0;6530:31:1;;;;;;1061:2475:0;6530:31:1;;;:::i;:::-;;;1061:2475:0;;;;;6530:31:1;;;;;;;-1:-1:-1;6530:31:1;;6467:26;;;1061:2475:0;6467:26:1;;1061:2475:0;6467:26:1;;;;;;1061:2475:0;6467:26:1;;;:::i;:::-;;;1061:2475:0;;;;;6467:26:1;;;;;;-1:-1:-1;6467:26:1;;6414:21;;;;1061:2475:0;6414:21:1;;1061:2475:0;6414:21:1;;;;;;1061:2475:0;6414:21:1;;;:::i;:::-;;;1061:2475:0;;;;;6414:21:1;;;;;;;-1:-1:-1;6414:21:1;;6365:26;;;;1061:2475:0;6365:26:1;;1061:2475:0;6365:26:1;;;;;;1061:2475:0;6365:26:1;;;:::i;:::-;;;1061:2475:0;;;;;;;:::i;:::-;6365:26:1;;;;;;;-1:-1:-1;6365:26:1;;6313:17;;;;1061:2475:0;6313:17:1;;1061:2475:0;6313:17:1;;;;;;1061:2475:0;6313:17:1;;;:::i;:::-;;;1061:2475:0;;;;;;;:::i;:::-;6313:17:1;;;;;;;-1:-1:-1;6313:17:1;;6270;1061:2475:0;6270:17:1;;1061:2475:0;6270:17:1;;;;;;1061:2475:0;6270:17:1;;;:::i;:::-;;;1061:2475:0;;;;;;;:::i;:::-;;6270:17:1;;;;;;;-1:-1:-1;6270:17:1;;1061:2475:0;;;;;;;:::i;:::-;;;-1:-1:-1;1061:2475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1061:2475:0;;;;;;:::o;10280:782:1:-;;1061:2475:0;;:::i;:::-;-1:-1:-1;1061:2475:0;;;-1:-1:-1;;;10416:25:1;;1061:2475:0;;;;10416:25:1;;;1061:2475:0;;-1:-1:-1;;;;;1061:2475:0;;;;;10416:25:1;;1061:2475:0;;;;10416:25:1;;;;;;;-1:-1:-1;10416:25:1;;;10280:782;1061:2475:0;;10504:15:1;;;;1061:2475:0;;;;;;-1:-1:-1;;;;;10547:32:1;10416:25;10547:32;;;;1061:2475:0;;;;;;;;;;;;;;10599:33:1;;;;;;;;;-1:-1:-1;10599:33:1;;;10280:782;10669:35;10416:25;10669:35;;1061:2475:0;10669:35:1;;1061:2475:0;;10733:27:1;;;;1061:2475:0;;;-1:-1:-1;1061:2475:0;;;;;;;;;;;;;10776:29:1;;;;;;;;;;;;;;;;;;-1:-1:-1;10776:29:1;;;10280:782;10837:19;;;;1061:2475:0;;;;;;;;;;;;;;;10822:35:1;;10416:25;10822:35;;1061:2475:0;10822:35:1;;;;;;;;;;-1:-1:-1;10822:35:1;;;10280:782;1061:2475:0;;;10918:19:1;1061:2475:0;10918:19:1;1061:2475:0;-1:-1:-1;;;;;1061:2475:0;;;;;;;;;;;;;;;;10955:31:1;;;;10416:25;10955:31;-1:-1:-1;10955:31:1;;;;;;;-1:-1:-1;10955:31:1;;;10280:782;-1:-1:-1;1061:2475:0;;;-1:-1:-1;;;11009:39:1;;1061:2475:0;;10416:25:1;11009:39;;1061:2475:0;;;;;;;11009:39:1;;1061:2475:0;11009:39:1;;;;;;;-1:-1:-1;11009:39:1;;;10280:782;1061:2475:0;;;;;;;;:::i;:::-;;10461:596:1;;1061:2475:0;10461:596:1;;1061:2475:0;10461:596:1;;;1061:2475:0;10547:32:1;10461:596;;1061:2475:0;;10461:596:1;;1061:2475:0;10733:27:1;10461:596;;1061:2475:0;;10461:596:1;;1061:2475:0;10461:596:1;;1061:2475:0;10461:596:1;;;1061:2475:0;10461:596:1;;;1061:2475:0;10280:782:1;:::o;11009:39::-;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2475:0;;;;;;11009:39:1;;;;;;;;;;1061:2475:0;;;-1:-1:-1;1061:2475:0;;;;;10955:31:1;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1061:2475:0;;;-1:-1:-1;1061:2475:0;;;;;10822:35:1;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2475:0;;;;;;;;10822:35:1;;;;;;;;;;1061:2475:0;;;-1:-1:-1;1061:2475:0;;;;;10776:29:1;;;;;;;;;;;;;:::i;:::-;;;;;10599:33;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2475:0;;;;-1:-1:-1;1061:2475:0;;10416:25:1;10599:33;;;;;;;;1061:2475:0;;;-1:-1:-1;1061:2475:0;;;;;10416:25:1;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2475:0;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;10416:25:1;;;;;;;;;11066:925;;;1061:2475:0;;:::i;:::-;-1:-1:-1;1061:2475:0;;;;-1:-1:-1;;;11366:63:1;;-1:-1:-1;;;;;1061:2475:0;;;11366:63:1;;;1061:2475:0;;;;;;;;;;;;;;;11366:63:1;1061:2475:0;;;;11366:63:1;;;;;;;-1:-1:-1;11366:63:1;;;11066:925;-1:-1:-1;1061:2475:0;;;;-1:-1:-1;;;11448:57:1;;-1:-1:-1;;;;;1061:2475:0;;;11366:63:1;11448:57;;1061:2475:0;;;;;;;;;11366:63:1;;1061:2475:0;;;;;;11448:57:1;;;;;;;-1:-1:-1;11448:57:1;;;11066:925;-1:-1:-1;11366:63:1;11533:22;;1061:2475:0;;11575:14:1;;;1061:2475:0;11626:31:1;;;1061:2475:0;;11686:23:1;;1061:2475:0;11725:10:1;;;;11752:11;;;1061:2475:0;;11784:15:1;;1061:2475:0;11820:15:1;;;1061:2475:0;11853:12:1;;;;11888:17;;;1061:2475:0;;;;;-1:-1:-1;;;11930:47:1;;-1:-1:-1;;;;;1061:2475:0;;;11366:63:1;11930:47;;1061:2475:0;;11853:12:1;;1061:2475:0;;;;;;;;;;11725:10:1;;1061:2475:0;;;;;11930:47:1;;1061:2475:0;11930:47:1;11366:63;11930:47;;;;;;;-1:-1:-1;11930:47:1;;;11066:925;1061:2475:0;;;;;;;;:::i;:::-;;;11366:63:1;11265:721;1061:2475:0;-1:-1:-1;;;;;1061:2475:0;;11265:721:1;;1061:2475:0;11725:10:1;11265:721;;1061:2475:0;11626:31:1;11265:721;;1061:2475:0;;11265:721:1;;1061:2475:0;11752:11:1;11265:721;;1061:2475:0;;11265:721:1;;1061:2475:0;11820:15:1;11265:721;;1061:2475:0;11853:12:1;11265:721;;1061:2475:0;11888:17:1;11265:721;;1061:2475:0;11265:721:1;;;1061:2475:0;11265:721:1;;;1061:2475:0;11265:721:1;;;1061:2475:0;11066:925:1;:::o;11930:47::-;;;11366:63;11930:47;;11366:63;11930:47;;;;;;11366:63;11930:47;;;:::i;:::-;;;1061:2475:0;;;;;;11930:47:1;;;;;;;-1:-1:-1;11930:47:1;;11448:57;;11366:63;11448:57;;11366:63;11448:57;;;;;;11366:63;11448:57;;;:::i;:::-;;;1061:2475:0;;;;;;;;:::i;:::-;11448:57:1;;;;;;-1:-1:-1;11448:57:1;;11366:63;;;;;;;;;;;;;;;;;:::i;:::-;;;1061:2475:0;;;;-1:-1:-1;1061:2475:0;;11366:63:1;;;;;;-1:-1:-1;11366:63:1;", "linkReferences": {} }, "methodIdentifiers": { - "aTokenMetadata(address,address,(address,address,address),address,address)": "0abe0bec", + "aTokenMetadata(address,address,(address,address,address,address),address,address)": "edd25e0b", "collateralInfo(address,uint8)": "cbe293fa", "collateralInfoWithAccount(address,(address,uint256,uint256,string,uint256,uint256,uint256,address,uint256,string,uint256),address)": "c2815c0b", - "getMigratorData(address,address,address,(address,address,address)[],address,address,address)": "ec7d7f7a", + "getMigratorData(address,address,address,(address,address,address,address)[],address,address,address)": "4853a7d7", "query(address)": "d4fc9fc6", "queryWithAccount(address,address,address)": "5346cc19" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6\",\"dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc\",\"dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract AavePriceOracle\",\"name\":\"priceOracle\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlying\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest\",\"name\":\"aTokenRequest\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"aTokenMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"name\":\"collateralInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset\",\"name\":\"asset\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"collateralInfoWithAccount\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract LendingPoolAddressesProvider\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"contract LendingPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"contract AToken\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"underlying\",\"type\":\"address\"},{\"internalType\":\"contract DebtToken\",\"name\":\"variableDebtToken\",\"type\":\"address\"}],\"internalType\":\"struct AaveV2Query.ATokenRequest[]\",\"name\":\"aTokens\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"usdcAddress\",\"type\":\"address\"}],\"name\":\"getMigratorData\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"migratorEnabled\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"variableDebtBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"configuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"priceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.ATokenMetadata[]\",\"name\":\"tokens\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"cometState\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"usdcPriceInETH\",\"type\":\"uint256\"}],\"internalType\":\"struct AaveV2Query.QueryResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"}],\"name\":\"query\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"internalType\":\"struct CometQuery.BaseAsset\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAsset[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Comet\",\"name\":\"comet\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"bulker\",\"type\":\"address\"}],\"name\":\"queryWithAccount\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"baseAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"balance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"balanceOfComet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBorrow\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.BaseAssetWithAccountState\",\"name\":\"baseAsset\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"baseMinForRewards\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingBorrowSpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseTrackingSupplySpeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bulkerAllowance\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"collateralAsset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"liquidateCollateralFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"priceFeed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"walletBalance\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CollateralAssetWithAccountState[]\",\"name\":\"collateralAssets\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"earnAPR\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeAssetWalletBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBorrowPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalSupplyPrincipal\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trackingIndexScale\",\"type\":\"uint256\"}],\"internalType\":\"struct CometQuery.CometStateWithAccountState\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Sleuth/AaveV2Query.sol\":\"AaveV2Query\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"Sleuth/AaveV2Query.sol\":{\"keccak256\":\"0x578fc61e19ce26c66f165d0c6f17c55f2b8391223c987b1548f4b452d5ec4cdc\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://87fd7b2eca8f21d2cc6fd5909e77b2dfe58cb7b92c42d171b4fd63b04cc0ffc1\",\"dweb:/ipfs/QmdNV6uPTVJ7Vu4gMabUrgkENwVqtJqFd2r6hN8ojcdjA6\"]},\"Sleuth/CometQuery.sol\":{\"keccak256\":\"0x99785aaaa231322abdb72d68ba1b61170b398eeb359f81c6054f32ebd426098c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://22e744dea1a0e828c64f63ba565438c4b5320d657ed20650a4c3e2165c0a00cc\",\"dweb:/ipfs/QmPXszVT1P6MVkyNfS31mTQq9bB1Rg29pGJLbfh99PJv36\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.16+commit.07a7930e" @@ -1142,6 +1152,11 @@ "name": "stableDebtToken", "type": "address" }, + { + "internalType": "address", + "name": "underlying", + "type": "address" + }, { "internalType": "contract DebtToken", "name": "variableDebtToken", @@ -1489,6 +1504,11 @@ "name": "stableDebtToken", "type": "address" }, + { + "internalType": "address", + "name": "underlying", + "type": "address" + }, { "internalType": "contract DebtToken", "name": "variableDebtToken", @@ -2232,10 +2252,10 @@ }, "sources": { "Sleuth/AaveV2Query.sol": { - "keccak256": "0x9953dc640faf9e633e4f0dcbbc8247f9568ae01270c718b0ba268bf64c1b54c9", + "keccak256": "0x578fc61e19ce26c66f165d0c6f17c55f2b8391223c987b1548f4b452d5ec4cdc", "urls": [ - "bzz-raw://edd4650df464b3fd7893f11e16fd062a1ae60be0fa663ebf815d5d2953be8db6", - "dweb:/ipfs/QmaLD8MT1nkuEjXxerJcqLE6HkrFx5xAkB4wS9WaE1zWa4" + "bzz-raw://87fd7b2eca8f21d2cc6fd5909e77b2dfe58cb7b92c42d171b4fd63b04cc0ffc1", + "dweb:/ipfs/QmdNV6uPTVJ7Vu4gMabUrgkENwVqtJqFd2r6hN8ojcdjA6" ], "license": "UNLICENSED" }, @@ -2252,7 +2272,7 @@ }, "ast": { "absolutePath": "Sleuth/AaveV2Query.sol", - "id": 288, + "id": 286, "exportedSymbols": { "AToken": [ 19 @@ -2261,19 +2281,19 @@ 54 ], "AaveV2Query": [ - 287 + 285 ], "Comet": [ - 598 + 596 ], "CometQuery": [ - 1278 + 1276 ], "DebtToken": [ 27 ], "ERC20": [ - 630 + 628 ], "LendingPool": [ 46 @@ -2283,7 +2303,7 @@ ] }, "nodeType": "SourceUnit", - "src": "39:3454:0", + "src": "39:3498:0", "nodes": [ { "id": 1, @@ -2303,8 +2323,8 @@ "absolutePath": "Sleuth/CometQuery.sol", "file": "./CometQuery.sol", "nameLocation": "-1:-1:-1", - "scope": 288, - "sourceUnit": 1279, + "scope": 286, + "sourceUnit": 1277, "symbolAliases": [], "unitAlias": "" }, @@ -2521,7 +2541,7 @@ ], "name": "AToken", "nameLocation": "103:6:0", - "scope": 288, + "scope": 286, "usedErrors": [] }, { @@ -2625,7 +2645,7 @@ ], "name": "DebtToken", "nameLocation": "275:9:0", - "scope": 288, + "scope": 286, "usedErrors": [] }, { @@ -2710,7 +2730,7 @@ ], "name": "LendingPoolAddressesProvider", "nameLocation": "366:28:0", - "scope": 288, + "scope": 286, "usedErrors": [] }, { @@ -2863,7 +2883,7 @@ ], "name": "LendingPool", "nameLocation": "479:11:0", - "scope": 288, + "scope": 286, "usedErrors": [] }, { @@ -2967,13 +2987,13 @@ ], "name": "AavePriceOracle", "nameLocation": "970:15:0", - "scope": 288, + "scope": 286, "usedErrors": [] }, { - "id": 287, + "id": 285, "nodeType": "ContractDefinition", - "src": "1061:2431:0", + "src": "1061:2475:0", "nodes": [ { "id": 75, @@ -3230,7 +3250,7 @@ ], "name": "ATokenMetadata", "nameLocation": "1107:14:0", - "scope": 287, + "scope": 285, "visibility": "public" }, { @@ -3324,7 +3344,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" }, "typeName": { @@ -3337,13 +3357,13 @@ "1434:26:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 791, + "referencedDeclaration": 789, "src": "1434:26:0" }, - "referencedDeclaration": 791, + "referencedDeclaration": 789, "src": "1434:26:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_storage_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_storage_ptr", "typeString": "struct CometQuery.CometStateWithAccountState" } }, @@ -3379,13 +3399,13 @@ ], "name": "QueryResponse", "nameLocation": "1359:13:0", - "scope": 287, + "scope": 285, "visibility": "public" }, { - "id": 97, + "id": 99, "nodeType": "StructDefinition", - "src": "1505:109:0", + "src": "1505:133:0", "canonicalName": "AaveV2Query.ATokenRequest", "members": [ { @@ -3395,7 +3415,7 @@ "name": "aToken", "nameLocation": "1539:6:0", "nodeType": "VariableDeclaration", - "scope": 97, + "scope": 99, "src": "1532:13:0", "stateVariable": false, "storageLocation": "default", @@ -3432,7 +3452,7 @@ "name": "stableDebtToken", "nameLocation": "1561:15:0", "nodeType": "VariableDeclaration", - "scope": 97, + "scope": 99, "src": "1551:25:0", "stateVariable": false, "storageLocation": "default", @@ -3464,13 +3484,41 @@ }, { "constant": false, - "id": 96, + "id": 95, + "mutability": "mutable", + "name": "underlying", + "nameLocation": "1590:10:0", + "nodeType": "VariableDeclaration", + "scope": 99, + "src": "1582:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1582:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, "mutability": "mutable", "name": "variableDebtToken", - "nameLocation": "1592:17:0", + "nameLocation": "1616:17:0", "nodeType": "VariableDeclaration", - "scope": 97, - "src": "1582:27:0", + "scope": 99, + "src": "1606:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3478,20 +3526,20 @@ "typeString": "contract DebtToken" }, "typeName": { - "id": 95, + "id": 97, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 94, + "id": 96, "name": "DebtToken", "nameLocations": [ - "1582:9:0" + "1606:9:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27, - "src": "1582:9:0" + "src": "1606:9:0" }, "referencedDeclaration": 27, - "src": "1582:9:0", + "src": "1606:9:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -3502,32 +3550,32 @@ ], "name": "ATokenRequest", "nameLocation": "1512:13:0", - "scope": 287, + "scope": 285, "visibility": "public" }, { - "id": 194, + "id": 196, "nodeType": "FunctionDefinition", - "src": "1618:845:0", + "src": "1642:845:0", "body": { - "id": 193, + "id": 195, "nodeType": "Block", - "src": "1895:568:0", + "src": "1919:568:0", "statements": [ { "assignments": [ - 124 + 126 ], "declarations": [ { "constant": false, - "id": 124, + "id": 126, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "1917:11:0", + "nameLocation": "1941:11:0", "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1901:27:0", + "scope": 195, + "src": "1925:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3535,20 +3583,20 @@ "typeString": "contract AavePriceOracle" }, "typeName": { - "id": 123, + "id": 125, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 122, + "id": 124, "name": "AavePriceOracle", "nameLocations": [ - "1901:15:0" + "1925:15:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 54, - "src": "1901:15:0" + "src": "1925:15:0" }, "referencedDeclaration": 54, - "src": "1901:15:0", + "src": "1925:15:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AavePriceOracle_$54", "typeString": "contract AavePriceOracle" @@ -3557,39 +3605,39 @@ "visibility": "internal" } ], - "id": 128, + "id": 130, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { - "id": 125, + "id": 127, "name": "provider", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 100, - "src": "1931:8:0", + "referencedDeclaration": 102, + "src": "1955:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", "typeString": "contract LendingPoolAddressesProvider" } }, - "id": 126, + "id": 128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1940:14:0", + "memberLocation": "1964:14:0", "memberName": "getPriceOracle", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "1931:23:0", + "src": "1955:23:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_AavePriceOracle_$54_$", "typeString": "function () view external returns (contract AavePriceOracle)" } }, - "id": 127, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, @@ -3598,7 +3646,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1931:25:0", + "src": "1955:25:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_AavePriceOracle_$54", @@ -3606,22 +3654,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1901:55:0" + "src": "1925:55:0" }, { "assignments": [ - 130 + 132 ], "declarations": [ { "constant": false, - "id": 130, + "id": 132, "mutability": "mutable", "name": "aTokenCount", - "nameLocation": "1967:11:0", + "nameLocation": "1991:11:0", "nodeType": "VariableDeclaration", - "scope": 193, - "src": "1962:16:0", + "scope": 195, + "src": "1986:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3629,10 +3677,10 @@ "typeString": "uint256" }, "typeName": { - "id": 129, + "id": 131, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1962:4:0", + "src": "1986:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3641,51 +3689,51 @@ "visibility": "internal" } ], - "id": 133, + "id": 135, "initialValue": { "expression": { - "id": 131, + "id": 133, "name": "aTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "1981:7:0", + "referencedDeclaration": 112, + "src": "2005:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$99_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" } }, - "id": 132, + "id": 134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1989:6:0", + "memberLocation": "2013:6:0", "memberName": "length", "nodeType": "MemberAccess", - "src": "1981:14:0", + "src": "2005:14:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1962:33:0" + "src": "1986:33:0" }, { "assignments": [ - 138 + 140 ], "declarations": [ { "constant": false, - "id": 138, + "id": 140, "mutability": "mutable", "name": "tokens", - "nameLocation": "2025:6:0", + "nameLocation": "2049:6:0", "nodeType": "VariableDeclaration", - "scope": 193, - "src": "2001:30:0", + "scope": 195, + "src": "2025:30:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3694,28 +3742,28 @@ }, "typeName": { "baseType": { - "id": 136, + "id": 138, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 135, + "id": 137, "name": "ATokenMetadata", "nameLocations": [ - "2001:14:0" + "2025:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 75, - "src": "2001:14:0" + "src": "2025:14:0" }, "referencedDeclaration": 75, - "src": "2001:14:0", + "src": "2025:14:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", "typeString": "struct AaveV2Query.ATokenMetadata" } }, - "id": 137, + "id": 139, "nodeType": "ArrayTypeName", - "src": "2001:16:0", + "src": "2025:16:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", "typeString": "struct AaveV2Query.ATokenMetadata[]" @@ -3724,16 +3772,16 @@ "visibility": "internal" } ], - "id": 145, + "id": 147, "initialValue": { "arguments": [ { - "id": 143, + "id": 145, "name": "aTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2055:11:0", + "referencedDeclaration": 132, + "src": "2079:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3747,48 +3795,48 @@ "typeString": "uint256" } ], - "id": 142, + "id": 144, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "2034:20:0", + "src": "2058:20:0", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct AaveV2Query.ATokenMetadata memory[] memory)" }, "typeName": { "baseType": { - "id": 140, + "id": 142, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 139, + "id": 141, "name": "ATokenMetadata", "nameLocations": [ - "2038:14:0" + "2062:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 75, - "src": "2038:14:0" + "src": "2062:14:0" }, "referencedDeclaration": 75, - "src": "2038:14:0", + "src": "2062:14:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", "typeString": "struct AaveV2Query.ATokenMetadata" } }, - "id": 141, + "id": 143, "nodeType": "ArrayTypeName", - "src": "2038:16:0", + "src": "2062:16:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_storage_$dyn_storage_ptr", "typeString": "struct AaveV2Query.ATokenMetadata[]" } } }, - "id": 144, + "id": 146, "isConstant": false, "isLValue": false, "isPure": false, @@ -3797,7 +3845,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2034:33:0", + "src": "2058:33:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", @@ -3805,42 +3853,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2001:66:0" + "src": "2025:66:0" }, { "body": { - "id": 170, + "id": 172, "nodeType": "Block", - "src": "2112:90:0", + "src": "2136:90:0", "statements": [ { "expression": { - "id": 168, + "id": 170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 156, + "id": 158, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2120:6:0", + "referencedDeclaration": 140, + "src": "2144:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" } }, - "id": 158, + "id": 160, "indexExpression": { - "id": 157, + "id": 159, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2127:1:0", + "referencedDeclaration": 149, + "src": "2151:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3851,7 +3899,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2120:9:0", + "src": "2144:9:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", "typeString": "struct AaveV2Query.ATokenMetadata memory" @@ -3862,24 +3910,24 @@ "rightHandSide": { "arguments": [ { - "id": 160, + "id": 162, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "2147:4:0", + "referencedDeclaration": 105, + "src": "2171:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_LendingPool_$46", "typeString": "contract LendingPool" } }, { - "id": 161, + "id": 163, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2153:11:0", + "referencedDeclaration": 126, + "src": "2177:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AavePriceOracle_$54", "typeString": "contract AavePriceOracle" @@ -3887,25 +3935,25 @@ }, { "baseExpression": { - "id": 162, + "id": 164, "name": "aTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "2166:7:0", + "referencedDeclaration": 112, + "src": "2190:7:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$99_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct AaveV2Query.ATokenRequest calldata[] calldata" } }, - "id": 164, + "id": 166, "indexExpression": { - "id": 163, + "id": 165, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2174:1:0", + "referencedDeclaration": 149, + "src": "2198:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3916,31 +3964,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2166:10:0", + "src": "2190:10:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_calldata_ptr", "typeString": "struct AaveV2Query.ATokenRequest calldata" } }, { - "id": 165, + "id": 167, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2178:7:0", + "referencedDeclaration": 114, + "src": "2202:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 166, + "id": 168, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2187:7:0", + "referencedDeclaration": 116, + "src": "2211:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3958,7 +4006,7 @@ "typeString": "contract AavePriceOracle" }, { - "typeIdentifier": "t_struct$_ATokenRequest_$97_calldata_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_calldata_ptr", "typeString": "struct AaveV2Query.ATokenRequest calldata" }, { @@ -3970,18 +4018,18 @@ "typeString": "address payable" } ], - "id": 159, + "id": 161, "name": "aTokenMetadata", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 286, - "src": "2132:14:0", + "referencedDeclaration": 284, + "src": "2156:14:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$97_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_LendingPool_$46_$_t_contract$_AavePriceOracle_$54_$_t_struct$_ATokenRequest_$99_memory_ptr_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_ATokenMetadata_$75_memory_ptr_$", "typeString": "function (contract LendingPool,contract AavePriceOracle,struct AaveV2Query.ATokenRequest memory,address payable,address payable) view returns (struct AaveV2Query.ATokenMetadata memory)" } }, - "id": 167, + "id": 169, "isConstant": false, "isLValue": false, "isPure": false, @@ -3990,22 +4038,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2132:63:0", + "src": "2156:63:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", "typeString": "struct AaveV2Query.ATokenMetadata memory" } }, - "src": "2120:75:0", + "src": "2144:75:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", "typeString": "struct AaveV2Query.ATokenMetadata memory" } }, - "id": 169, + "id": 171, "nodeType": "ExpressionStatement", - "src": "2120:75:0" + "src": "2144:75:0" } ] }, @@ -4014,18 +4062,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 152, + "id": 154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 150, + "id": 152, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2090:1:0", + "referencedDeclaration": 149, + "src": "2114:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4034,38 +4082,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 151, + "id": 153, "name": "aTokenCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2094:11:0", + "referencedDeclaration": 132, + "src": "2118:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2090:15:0", + "src": "2114:15:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 171, + "id": 173, "initializationExpression": { "assignments": [ - 147 + 149 ], "declarations": [ { "constant": false, - "id": 147, + "id": 149, "mutability": "mutable", "name": "i", - "nameLocation": "2083:1:0", + "nameLocation": "2107:1:0", "nodeType": "VariableDeclaration", - "scope": 171, - "src": "2078:6:0", + "scope": 173, + "src": "2102:6:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4073,10 +4121,10 @@ "typeString": "uint256" }, "typeName": { - "id": 146, + "id": 148, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2078:4:0", + "src": "2102:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4085,17 +4133,17 @@ "visibility": "internal" } ], - "id": 149, + "id": 151, "initialValue": { "hexValue": "30", - "id": 148, + "id": 150, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2087:1:0", + "src": "2111:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4103,11 +4151,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2078:10:0" + "src": "2102:10:0" }, "loopExpression": { "expression": { - "id": 154, + "id": 156, "isConstant": false, "isLValue": false, "isPure": false, @@ -4115,14 +4163,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2107:3:0", + "src": "2131:3:0", "subExpression": { - "id": 153, + "id": 155, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "2107:1:0", + "referencedDeclaration": 149, + "src": "2131:1:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4133,12 +4181,12 @@ "typeString": "uint256" } }, - "id": 155, + "id": 157, "nodeType": "ExpressionStatement", - "src": "2107:3:0" + "src": "2131:3:0" }, "nodeType": "ForStatement", - "src": "2073:129:0" + "src": "2097:129:0" }, { "expression": { @@ -4146,24 +4194,24 @@ { "arguments": [ { - "id": 175, + "id": 177, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2278:7:0", + "referencedDeclaration": 114, + "src": "2302:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 176, + "id": 178, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "2287:7:0", + "referencedDeclaration": 116, + "src": "2311:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4182,33 +4230,33 @@ } ], "expression": { - "id": 173, + "id": 175, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2262:5:0", + "referencedDeclaration": 108, + "src": "2286:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", + "typeIdentifier": "t_contract$_Comet_$596", "typeString": "contract Comet" } }, - "id": 174, + "id": 176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2268:9:0", + "memberLocation": "2292:9:0", "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 597, - "src": "2262:15:0", + "referencedDeclaration": 595, + "src": "2286:15:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 177, + "id": 179, "isConstant": false, "isLValue": false, "isPure": false, @@ -4217,7 +4265,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2262:33:0", + "src": "2286:33:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4225,12 +4273,12 @@ } }, { - "id": 178, + "id": 180, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2313:6:0", + "referencedDeclaration": 140, + "src": "2337:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_ATokenMetadata_$75_memory_ptr_$dyn_memory_ptr", "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" @@ -4239,24 +4287,24 @@ { "arguments": [ { - "id": 180, + "id": 182, "name": "comet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 106, - "src": "2358:5:0", + "referencedDeclaration": 108, + "src": "2382:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", + "typeIdentifier": "t_contract$_Comet_$596", "typeString": "contract Comet" } }, { - "id": 181, + "id": 183, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "2365:7:0", + "referencedDeclaration": 114, + "src": "2389:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4266,14 +4314,14 @@ "arguments": [ { "hexValue": "30", - "id": 184, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2382:1:0", + "src": "2406:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4288,27 +4336,27 @@ "typeString": "int_const 0" } ], - "id": 183, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2374:8:0", + "src": "2398:8:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { - "id": 182, + "id": 184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2374:8:0", + "src": "2398:8:0", "stateMutability": "payable", "typeDescriptions": {} } }, - "id": 185, + "id": 187, "isConstant": false, "isLValue": false, "isPure": true, @@ -4317,7 +4365,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2374:10:0", + "src": "2398:10:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4328,7 +4376,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Comet_$598", + "typeIdentifier": "t_contract$_Comet_$596", "typeString": "contract Comet" }, { @@ -4340,18 +4388,18 @@ "typeString": "address payable" } ], - "id": 179, + "id": 181, "name": "queryWithAccount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1148, - "src": "2341:16:0", + "referencedDeclaration": 1146, + "src": "2365:16:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$598_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$791_memory_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_Comet_$596_$_t_address_payable_$_t_address_payable_$returns$_t_struct$_CometStateWithAccountState_$789_memory_ptr_$", "typeString": "function (contract Comet,address payable,address payable) view returns (struct CometQuery.CometStateWithAccountState memory)" } }, - "id": 186, + "id": 188, "isConstant": false, "isLValue": false, "isPure": false, @@ -4360,22 +4408,22 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2341:44:0", + "src": "2365:44:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" } }, { "arguments": [ { - "id": 189, + "id": 191, "name": "usdcAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2437:11:0", + "referencedDeclaration": 118, + "src": "2461:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4390,33 +4438,33 @@ } ], "expression": { - "id": 187, + "id": 189, "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2411:11:0", + "referencedDeclaration": 126, + "src": "2435:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AavePriceOracle_$54", "typeString": "contract AavePriceOracle" } }, - "id": 188, + "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2423:13:0", + "memberLocation": "2447:13:0", "memberName": "getAssetPrice", "nodeType": "MemberAccess", "referencedDeclaration": 53, - "src": "2411:25:0", + "src": "2435:25:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 190, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -4425,7 +4473,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2411:38:0", + "src": "2435:38:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4444,7 +4492,7 @@ "typeString": "struct AaveV2Query.ATokenMetadata memory[] memory" }, { - "typeIdentifier": "t_struct$_CometStateWithAccountState_$791_memory_ptr", + "typeIdentifier": "t_struct$_CometStateWithAccountState_$789_memory_ptr", "typeString": "struct CometQuery.CometStateWithAccountState memory" }, { @@ -4452,28 +4500,28 @@ "typeString": "uint256" } ], - "id": 172, + "id": 174, "name": "QueryResponse", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 87, - "src": "2221:13:0", + "src": "2245:13:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_QueryResponse_$87_storage_ptr_$", "typeString": "type(struct AaveV2Query.QueryResponse storage pointer)" } }, - "id": 191, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "2245:15:0", - "2305:6:0", - "2329:10:0", - "2395:14:0" + "2269:15:0", + "2329:6:0", + "2353:10:0", + "2419:14:0" ], "names": [ "migratorEnabled", @@ -4482,39 +4530,39 @@ "usdcPriceInETH" ], "nodeType": "FunctionCall", - "src": "2221:237:0", + "src": "2245:237:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_QueryResponse_$87_memory_ptr", "typeString": "struct AaveV2Query.QueryResponse memory" } }, - "functionReturnParameters": 121, - "id": 192, + "functionReturnParameters": 123, + "id": 194, "nodeType": "Return", - "src": "2208:250:0" + "src": "2232:250:0" } ] }, - "functionSelector": "ec7d7f7a", + "functionSelector": "4853a7d7", "implemented": true, "kind": "function", "modifiers": [], "name": "getMigratorData", - "nameLocation": "1627:15:0", + "nameLocation": "1651:15:0", "parameters": { - "id": 117, + "id": 119, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 102, "mutability": "mutable", "name": "provider", - "nameLocation": "1677:8:0", + "nameLocation": "1701:8:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1648:37:0", + "scope": 196, + "src": "1672:37:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4522,20 +4570,20 @@ "typeString": "contract LendingPoolAddressesProvider" }, "typeName": { - "id": 99, + "id": 101, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 98, + "id": 100, "name": "LendingPoolAddressesProvider", "nameLocations": [ - "1648:28:0" + "1672:28:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 34, - "src": "1648:28:0" + "src": "1672:28:0" }, "referencedDeclaration": 34, - "src": "1648:28:0", + "src": "1672:28:0", "typeDescriptions": { "typeIdentifier": "t_contract$_LendingPoolAddressesProvider_$34", "typeString": "contract LendingPoolAddressesProvider" @@ -4545,13 +4593,13 @@ }, { "constant": false, - "id": 103, + "id": 105, "mutability": "mutable", "name": "pool", - "nameLocation": "1703:4:0", + "nameLocation": "1727:4:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1691:16:0", + "scope": 196, + "src": "1715:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4559,20 +4607,20 @@ "typeString": "contract LendingPool" }, "typeName": { - "id": 102, + "id": 104, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 101, + "id": 103, "name": "LendingPool", "nameLocations": [ - "1691:11:0" + "1715:11:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 46, - "src": "1691:11:0" + "src": "1715:11:0" }, "referencedDeclaration": 46, - "src": "1691:11:0", + "src": "1715:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_LendingPool_$46", "typeString": "contract LendingPool" @@ -4582,36 +4630,36 @@ }, { "constant": false, - "id": 106, + "id": 108, "mutability": "mutable", "name": "comet", - "nameLocation": "1719:5:0", + "nameLocation": "1743:5:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1713:11:0", + "scope": 196, + "src": "1737:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", + "typeIdentifier": "t_contract$_Comet_$596", "typeString": "contract Comet" }, "typeName": { - "id": 105, + "id": 107, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 104, + "id": 106, "name": "Comet", "nameLocations": [ - "1713:5:0" + "1737:5:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 598, - "src": "1713:5:0" + "referencedDeclaration": 596, + "src": "1737:5:0" }, - "referencedDeclaration": 598, - "src": "1713:5:0", + "referencedDeclaration": 596, + "src": "1737:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Comet_$598", + "typeIdentifier": "t_contract$_Comet_$596", "typeString": "contract Comet" } }, @@ -4619,45 +4667,45 @@ }, { "constant": false, - "id": 110, + "id": 112, "mutability": "mutable", "name": "aTokens", - "nameLocation": "1755:7:0", + "nameLocation": "1779:7:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1730:32:0", + "scope": 196, + "src": "1754:32:0", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_calldata_ptr_$dyn_calldata_ptr", + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$99_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct AaveV2Query.ATokenRequest[]" }, "typeName": { "baseType": { - "id": 108, + "id": 110, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 107, + "id": 109, "name": "ATokenRequest", "nameLocations": [ - "1730:13:0" + "1754:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "1730:13:0" + "referencedDeclaration": 99, + "src": "1754:13:0" }, - "referencedDeclaration": 97, - "src": "1730:13:0", + "referencedDeclaration": 99, + "src": "1754:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_storage_ptr", "typeString": "struct AaveV2Query.ATokenRequest" } }, - "id": 109, + "id": 111, "nodeType": "ArrayTypeName", - "src": "1730:15:0", + "src": "1754:15:0", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$97_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_ATokenRequest_$99_storage_$dyn_storage_ptr", "typeString": "struct AaveV2Query.ATokenRequest[]" } }, @@ -4665,13 +4713,13 @@ }, { "constant": false, - "id": 112, + "id": 114, "mutability": "mutable", "name": "account", - "nameLocation": "1784:7:0", + "nameLocation": "1808:7:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1768:23:0", + "scope": 196, + "src": "1792:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4679,10 +4727,10 @@ "typeString": "address payable" }, "typeName": { - "id": 111, + "id": 113, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1768:15:0", + "src": "1792:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4693,13 +4741,13 @@ }, { "constant": false, - "id": 114, + "id": 116, "mutability": "mutable", "name": "spender", - "nameLocation": "1813:7:0", + "nameLocation": "1837:7:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1797:23:0", + "scope": 196, + "src": "1821:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4707,10 +4755,10 @@ "typeString": "address payable" }, "typeName": { - "id": 113, + "id": 115, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1797:15:0", + "src": "1821:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -4721,13 +4769,13 @@ }, { "constant": false, - "id": 116, + "id": 118, "mutability": "mutable", "name": "usdcAddress", - "nameLocation": "1834:11:0", + "nameLocation": "1858:11:0", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1826:19:0", + "scope": 196, + "src": "1850:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4735,10 +4783,10 @@ "typeString": "address" }, "typeName": { - "id": 115, + "id": 117, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1826:7:0", + "src": "1850:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4748,21 +4796,21 @@ "visibility": "internal" } ], - "src": "1642:207:0" + "src": "1666:207:0" }, "returnParameters": { - "id": 121, + "id": 123, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 120, + "id": 122, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 194, - "src": "1873:20:0", + "scope": 196, + "src": "1897:20:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4770,20 +4818,20 @@ "typeString": "struct AaveV2Query.QueryResponse" }, "typeName": { - "id": 119, + "id": 121, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 118, + "id": 120, "name": "QueryResponse", "nameLocations": [ - "1873:13:0" + "1897:13:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 87, - "src": "1873:13:0" + "src": "1897:13:0" }, "referencedDeclaration": 87, - "src": "1873:13:0", + "src": "1897:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_QueryResponse_$87_storage_ptr", "typeString": "struct AaveV2Query.QueryResponse" @@ -4792,36 +4840,36 @@ "visibility": "internal" } ], - "src": "1872:22:0" + "src": "1896:22:0" }, - "scope": 287, + "scope": 285, "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "id": 286, + "id": 284, "nodeType": "FunctionDefinition", - "src": "2467:1023:0", + "src": "2491:1043:0", "body": { - "id": 285, + "id": 283, "nodeType": "Block", - "src": "2692:798:0", + "src": "2716:818:0", "statements": [ { "assignments": [ - 215 + 217 ], "declarations": [ { "constant": false, - "id": 215, + "id": 217, "mutability": "mutable", "name": "aToken", - "nameLocation": "2705:6:0", + "nameLocation": "2729:6:0", "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2698:13:0", + "scope": 283, + "src": "2722:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4829,20 +4877,20 @@ "typeString": "contract AToken" }, "typeName": { - "id": 214, + "id": 216, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 213, + "id": 215, "name": "AToken", "nameLocations": [ - "2698:6:0" + "2722:6:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 19, - "src": "2698:6:0" + "src": "2722:6:0" }, "referencedDeclaration": 19, - "src": "2698:6:0", + "src": "2722:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AToken_$19", "typeString": "contract AToken" @@ -4851,52 +4899,52 @@ "visibility": "internal" } ], - "id": 218, + "id": 220, "initialValue": { "expression": { - "id": 216, + "id": 218, "name": "aTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2714:13:0", + "referencedDeclaration": 205, + "src": "2738:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_memory_ptr", "typeString": "struct AaveV2Query.ATokenRequest memory" } }, - "id": 217, + "id": 219, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2728:6:0", + "memberLocation": "2752:6:0", "memberName": "aToken", "nodeType": "MemberAccess", "referencedDeclaration": 90, - "src": "2714:20:0", + "src": "2738:20:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AToken_$19", "typeString": "contract AToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "2698:36:0" + "src": "2722:36:0" }, { "assignments": [ - 221 + 223 ], "declarations": [ { "constant": false, - "id": 221, + "id": 223, "mutability": "mutable", "name": "stableDebtToken", - "nameLocation": "2750:15:0", + "nameLocation": "2774:15:0", "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2740:25:0", + "scope": 283, + "src": "2764:25:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4904,20 +4952,20 @@ "typeString": "contract DebtToken" }, "typeName": { - "id": 220, + "id": 222, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 219, + "id": 221, "name": "DebtToken", "nameLocations": [ - "2740:9:0" + "2764:9:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27, - "src": "2740:9:0" + "src": "2764:9:0" }, "referencedDeclaration": 27, - "src": "2740:9:0", + "src": "2764:9:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -4926,52 +4974,52 @@ "visibility": "internal" } ], - "id": 224, + "id": 226, "initialValue": { "expression": { - "id": 222, + "id": 224, "name": "aTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2768:13:0", + "referencedDeclaration": 205, + "src": "2792:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_memory_ptr", "typeString": "struct AaveV2Query.ATokenRequest memory" } }, - "id": 223, + "id": 225, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2782:15:0", + "memberLocation": "2806:15:0", "memberName": "stableDebtToken", "nodeType": "MemberAccess", "referencedDeclaration": 93, - "src": "2768:29:0", + "src": "2792:29:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "2740:57:0" + "src": "2764:57:0" }, { "assignments": [ - 227 + 229 ], "declarations": [ { "constant": false, - "id": 227, + "id": 229, "mutability": "mutable", "name": "variableDebtToken", - "nameLocation": "2813:17:0", + "nameLocation": "2837:17:0", "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2803:27:0", + "scope": 283, + "src": "2827:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4979,20 +5027,20 @@ "typeString": "contract DebtToken" }, "typeName": { - "id": 226, + "id": 228, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 225, + "id": 227, "name": "DebtToken", "nameLocations": [ - "2803:9:0" + "2827:9:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27, - "src": "2803:9:0" + "src": "2827:9:0" }, "referencedDeclaration": 27, - "src": "2803:9:0", + "src": "2827:9:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -5001,52 +5049,52 @@ "visibility": "internal" } ], - "id": 230, + "id": 232, "initialValue": { "expression": { - "id": 228, + "id": 230, "name": "aTokenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 203, - "src": "2833:13:0", + "referencedDeclaration": 205, + "src": "2857:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_memory_ptr", "typeString": "struct AaveV2Query.ATokenRequest memory" } }, - "id": 229, + "id": 231, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2847:17:0", + "memberLocation": "2871:17:0", "memberName": "variableDebtToken", "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "2833:31:0", + "referencedDeclaration": 98, + "src": "2857:31:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "2803:61:0" + "src": "2827:61:0" }, { "assignments": [ - 235 + 237 ], "declarations": [ { "constant": false, - "id": 235, + "id": 237, "mutability": "mutable", "name": "configuration", - "nameLocation": "2914:13:0", + "nameLocation": "2938:13:0", "nodeType": "VariableDeclaration", - "scope": 285, - "src": "2871:56:0", + "scope": 283, + "src": "2895:56:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5054,21 +5102,21 @@ "typeString": "struct LendingPool.ReserveConfigurationMap" }, "typeName": { - "id": 234, + "id": 236, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 233, + "id": 235, "name": "LendingPool.ReserveConfigurationMap", "nameLocations": [ - "2871:11:0", - "2883:23:0" + "2895:11:0", + "2907:23:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 37, - "src": "2871:35:0" + "src": "2895:35:0" }, "referencedDeclaration": 37, - "src": "2871:35:0", + "src": "2895:35:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_storage_ptr", "typeString": "struct LendingPool.ReserveConfigurationMap" @@ -5081,57 +5129,28 @@ "initialValue": { "arguments": [ { - "arguments": [ - { - "id": 240, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "2960:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2952:7:0", + "id": 240, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "2976:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2952:7:0", - "typeDescriptions": {} + "typeIdentifier": "t_struct$_ATokenRequest_$99_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" } }, "id": 241, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2952:15:0", - "tryCall": false, + "memberLocation": "2990:10:0", + "memberName": "underlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 95, + "src": "2976:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5146,27 +5165,27 @@ } ], "expression": { - "id": 236, + "id": 238, "name": "pool", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2930:4:0", + "referencedDeclaration": 199, + "src": "2954:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_LendingPool_$46", "typeString": "contract LendingPool" } }, - "id": 237, + "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2935:16:0", + "memberLocation": "2959:16:0", "memberName": "getConfiguration", "nodeType": "MemberAccess", "referencedDeclaration": 45, - "src": "2930:21:0", + "src": "2954:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_ReserveConfigurationMap_$37_memory_ptr_$", "typeString": "function (address) view external returns (struct LendingPool.ReserveConfigurationMap memory)" @@ -5181,7 +5200,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2930:38:0", + "src": "2954:47:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", @@ -5189,7 +5208,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2871:97:0" + "src": "2895:106:0" }, { "expression": { @@ -5201,8 +5220,8 @@ "name": "aToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3029:6:0", + "referencedDeclaration": 217, + "src": "3062:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AToken_$19", "typeString": "contract AToken" @@ -5222,7 +5241,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3021:7:0", + "src": "3054:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -5231,7 +5250,7 @@ "id": 245, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3021:7:0", + "src": "3054:7:0", "typeDescriptions": {} } }, @@ -5244,7 +5263,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3021:15:0", + "src": "3054:15:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5258,8 +5277,8 @@ "name": "stableDebtToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3071:15:0", + "referencedDeclaration": 223, + "src": "3104:15:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -5279,7 +5298,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3063:7:0", + "src": "3096:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -5288,7 +5307,7 @@ "id": 249, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3063:7:0", + "src": "3096:7:0", "typeDescriptions": {} } }, @@ -5301,7 +5320,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3063:24:0", + "src": "3096:24:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5315,8 +5334,8 @@ "name": "variableDebtToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 227, - "src": "3124:17:0", + "referencedDeclaration": 229, + "src": "3157:17:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -5336,7 +5355,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3116:7:0", + "src": "3149:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -5345,7 +5364,7 @@ "id": 253, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3116:7:0", + "src": "3149:7:0", "typeDescriptions": {} } }, @@ -5358,7 +5377,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3116:26:0", + "src": "3149:26:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5372,8 +5391,8 @@ "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3180:7:0", + "referencedDeclaration": 207, + "src": "3213:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5384,8 +5403,8 @@ "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "3189:7:0", + "referencedDeclaration": 209, + "src": "3222:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5408,8 +5427,8 @@ "name": "aToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3163:6:0", + "referencedDeclaration": 217, + "src": "3196:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AToken_$19", "typeString": "contract AToken" @@ -5420,11 +5439,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3170:9:0", + "memberLocation": "3203:9:0", "memberName": "allowance", "nodeType": "MemberAccess", "referencedDeclaration": 11, - "src": "3163:16:0", + "src": "3196:16:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" @@ -5439,7 +5458,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3163:34:0", + "src": "3196:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5453,8 +5472,8 @@ "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3233:7:0", + "referencedDeclaration": 207, + "src": "3266:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5473,8 +5492,8 @@ "name": "aToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3216:6:0", + "referencedDeclaration": 217, + "src": "3249:6:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AToken_$19", "typeString": "contract AToken" @@ -5485,11 +5504,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3223:9:0", + "memberLocation": "3256:9:0", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 18, - "src": "3216:16:0", + "src": "3249:16:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -5504,7 +5523,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3216:25:0", + "src": "3249:25:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5518,8 +5537,8 @@ "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3296:7:0", + "referencedDeclaration": 207, + "src": "3329:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5538,8 +5557,8 @@ "name": "stableDebtToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3270:15:0", + "referencedDeclaration": 223, + "src": "3303:15:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -5550,11 +5569,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3286:9:0", + "memberLocation": "3319:9:0", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 26, - "src": "3270:25:0", + "src": "3303:25:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -5569,7 +5588,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3270:34:0", + "src": "3303:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5583,8 +5602,8 @@ "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 205, - "src": "3361:7:0", + "referencedDeclaration": 207, + "src": "3396:7:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -5600,11 +5619,11 @@ ], "expression": { "id": 270, - "name": "stableDebtToken", + "name": "variableDebtToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 221, - "src": "3335:15:0", + "referencedDeclaration": 229, + "src": "3368:17:0", "typeDescriptions": { "typeIdentifier": "t_contract$_DebtToken_$27", "typeString": "contract DebtToken" @@ -5615,11 +5634,11 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3351:9:0", + "memberLocation": "3386:9:0", "memberName": "balanceOf", "nodeType": "MemberAccess", "referencedDeclaration": 26, - "src": "3335:25:0", + "src": "3368:27:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" @@ -5634,7 +5653,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3335:34:0", + "src": "3368:36:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5647,8 +5666,8 @@ "name": "configuration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "3394:13:0", + "referencedDeclaration": 237, + "src": "3429:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ReserveConfigurationMap_$37_memory_ptr", "typeString": "struct LendingPool.ReserveConfigurationMap memory" @@ -5659,11 +5678,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3408:4:0", + "memberLocation": "3443:4:0", "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": 36, - "src": "3394:18:0", + "src": "3429:18:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5672,57 +5691,28 @@ { "arguments": [ { - "arguments": [ - { - "id": 280, - "name": "aToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3468:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AToken_$19", - "typeString": "contract AToken" - } - ], - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:0", + "id": 278, + "name": "aTokenRequest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 205, + "src": "3495:13:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 278, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3460:7:0", - "typeDescriptions": {} + "typeIdentifier": "t_struct$_ATokenRequest_$99_memory_ptr", + "typeString": "struct AaveV2Query.ATokenRequest memory" } }, - "id": 281, + "id": 279, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3460:15:0", - "tryCall": false, + "memberLocation": "3509:10:0", + "memberName": "underlying", + "nodeType": "MemberAccess", + "referencedDeclaration": 95, + "src": "3495:24:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5741,8 +5731,8 @@ "name": "priceOracle", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 200, - "src": "3434:11:0", + "referencedDeclaration": 202, + "src": "3469:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AavePriceOracle_$54", "typeString": "contract AavePriceOracle" @@ -5753,17 +5743,17 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3446:13:0", + "memberLocation": "3481:13:0", "memberName": "getAssetPrice", "nodeType": "MemberAccess", "referencedDeclaration": 53, - "src": "3434:25:0", + "src": "3469:25:0", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 282, + "id": 280, "isConstant": false, "isLValue": false, "isPure": false, @@ -5772,7 +5762,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3434:42:0", + "src": "3469:51:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5824,28 +5814,28 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 75, - "src": "2988:14:0", + "src": "3021:14:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_ATokenMetadata_$75_storage_ptr_$", "typeString": "type(struct AaveV2Query.ATokenMetadata storage pointer)" } }, - "id": 283, + "id": 281, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ - "3013:6:0", - "3046:15:0", - "3097:17:0", - "3152:9:0", - "3207:7:0", - "3251:17:0", - "3314:19:0", - "3379:13:0", - "3422:10:0" + "3046:6:0", + "3079:15:0", + "3130:17:0", + "3185:9:0", + "3240:7:0", + "3284:17:0", + "3347:19:0", + "3414:13:0", + "3457:10:0" ], "names": [ "aToken", @@ -5859,39 +5849,39 @@ "priceInETH" ], "nodeType": "FunctionCall", - "src": "2988:497:0", + "src": "3021:508:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_memory_ptr", "typeString": "struct AaveV2Query.ATokenMetadata memory" } }, - "functionReturnParameters": 212, - "id": 284, + "functionReturnParameters": 214, + "id": 282, "nodeType": "Return", - "src": "2975:510:0" + "src": "3008:521:0" } ] }, - "functionSelector": "0abe0bec", + "functionSelector": "edd25e0b", "implemented": true, "kind": "function", "modifiers": [], "name": "aTokenMetadata", - "nameLocation": "2476:14:0", + "nameLocation": "2500:14:0", "parameters": { - "id": 208, + "id": 210, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 197, + "id": 199, "mutability": "mutable", "name": "pool", - "nameLocation": "2508:4:0", + "nameLocation": "2532:4:0", "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2496:16:0", + "scope": 284, + "src": "2520:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5899,20 +5889,20 @@ "typeString": "contract LendingPool" }, "typeName": { - "id": 196, + "id": 198, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 195, + "id": 197, "name": "LendingPool", "nameLocations": [ - "2496:11:0" + "2520:11:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 46, - "src": "2496:11:0" + "src": "2520:11:0" }, "referencedDeclaration": 46, - "src": "2496:11:0", + "src": "2520:11:0", "typeDescriptions": { "typeIdentifier": "t_contract$_LendingPool_$46", "typeString": "contract LendingPool" @@ -5922,13 +5912,13 @@ }, { "constant": false, - "id": 200, + "id": 202, "mutability": "mutable", "name": "priceOracle", - "nameLocation": "2534:11:0", + "nameLocation": "2558:11:0", "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2518:27:0", + "scope": 284, + "src": "2542:27:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5936,20 +5926,20 @@ "typeString": "contract AavePriceOracle" }, "typeName": { - "id": 199, + "id": 201, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 198, + "id": 200, "name": "AavePriceOracle", "nameLocations": [ - "2518:15:0" + "2542:15:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 54, - "src": "2518:15:0" + "src": "2542:15:0" }, "referencedDeclaration": 54, - "src": "2518:15:0", + "src": "2542:15:0", "typeDescriptions": { "typeIdentifier": "t_contract$_AavePriceOracle_$54", "typeString": "contract AavePriceOracle" @@ -5959,36 +5949,36 @@ }, { "constant": false, - "id": 203, + "id": 205, "mutability": "mutable", "name": "aTokenRequest", - "nameLocation": "2572:13:0", + "nameLocation": "2596:13:0", "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2551:34:0", + "scope": 284, + "src": "2575:34:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_memory_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_memory_ptr", "typeString": "struct AaveV2Query.ATokenRequest" }, "typeName": { - "id": 202, + "id": 204, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 201, + "id": 203, "name": "ATokenRequest", "nameLocations": [ - "2551:13:0" + "2575:13:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 97, - "src": "2551:13:0" + "referencedDeclaration": 99, + "src": "2575:13:0" }, - "referencedDeclaration": 97, - "src": "2551:13:0", + "referencedDeclaration": 99, + "src": "2575:13:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_ATokenRequest_$97_storage_ptr", + "typeIdentifier": "t_struct$_ATokenRequest_$99_storage_ptr", "typeString": "struct AaveV2Query.ATokenRequest" } }, @@ -5996,13 +5986,13 @@ }, { "constant": false, - "id": 205, + "id": 207, "mutability": "mutable", "name": "account", - "nameLocation": "2607:7:0", + "nameLocation": "2631:7:0", "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2591:23:0", + "scope": 284, + "src": "2615:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6010,10 +6000,10 @@ "typeString": "address payable" }, "typeName": { - "id": 204, + "id": 206, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2591:15:0", + "src": "2615:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6024,13 +6014,13 @@ }, { "constant": false, - "id": 207, + "id": 209, "mutability": "mutable", "name": "spender", - "nameLocation": "2636:7:0", + "nameLocation": "2660:7:0", "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2620:23:0", + "scope": 284, + "src": "2644:23:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6038,10 +6028,10 @@ "typeString": "address payable" }, "typeName": { - "id": 206, + "id": 208, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2620:15:0", + "src": "2644:15:0", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -6051,21 +6041,21 @@ "visibility": "internal" } ], - "src": "2490:157:0" + "src": "2514:157:0" }, "returnParameters": { - "id": 212, + "id": 214, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 211, + "id": 213, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 286, - "src": "2669:21:0", + "scope": 284, + "src": "2693:21:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6073,20 +6063,20 @@ "typeString": "struct AaveV2Query.ATokenMetadata" }, "typeName": { - "id": 210, + "id": 212, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 209, + "id": 211, "name": "ATokenMetadata", "nameLocations": [ - "2669:14:0" + "2693:14:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 75, - "src": "2669:14:0" + "src": "2693:14:0" }, "referencedDeclaration": 75, - "src": "2669:14:0", + "src": "2693:14:0", "typeDescriptions": { "typeIdentifier": "t_struct$_ATokenMetadata_$75_storage_ptr", "typeString": "struct AaveV2Query.ATokenMetadata" @@ -6095,9 +6085,9 @@ "visibility": "internal" } ], - "src": "2668:23:0" + "src": "2692:23:0" }, - "scope": 287, + "scope": 285, "stateMutability": "view", "virtual": false, "visibility": "public" @@ -6113,7 +6103,7 @@ "1085:10:0" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 1278, + "referencedDeclaration": 1276, "src": "1085:10:0" }, "id": 56, @@ -6126,12 +6116,12 @@ "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ - 287, - 1278 + 285, + 1276 ], "name": "AaveV2Query", "nameLocation": "1070:11:0", - "scope": 288, + "scope": 286, "usedErrors": [] } ], From cdcb3c0d8393e710087e5821f61beab25162351c Mon Sep 17 00:00:00 2001 From: Mykel Pereira Date: Wed, 11 Jan 2023 20:29:56 -0600 Subject: [PATCH 11/11] Update typo --- web/components/SwapDropdown.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/components/SwapDropdown.tsx b/web/components/SwapDropdown.tsx index 860b68a..f02adce 100644 --- a/web/components/SwapDropdown.tsx +++ b/web/components/SwapDropdown.tsx @@ -96,7 +96,7 @@ const SwapDropdown = ({ baseAsset, state, onRefetchClicked }: SwapDropdownProps) error = ( ); }